首页 文章

根据批量大小动态平铺张量

提问于
浏览
8

我有一个1D张量,我想堆叠/打包/平铺成像张量如 y=[a, a, a] . 如果我知道我想重复多少次,我可以使用 tf.tilereshape .

但我不这样做,因为尺寸取决于批量大小 . 占位符值为 None ,这不是有效输入 . 我知道 tf.slice 可以输入 -1 并让tensorflow计算出来,但我不知道tensorflow如何推断出正确的大小 . 我确实有一个张量 x ,其形状与 y 相同,但我没有看到 tile_like 函数 .

有什么建议?

1 回答

  • 13

    您可以使用 tf.shape 找出张量的运行时形状,并将其用作 tf.tile 参数的基础:

    import tensorflow as tf
    import numpy as np
    
    x = tf.placeholder(tf.float32, shape=[None, 3])
    
    y = tf.tile([2, 3], tf.shape(x)[0:1])
    
    sess = tf.Session()
    print(sess.run(y, feed_dict={x: np.zeros([11, 3])}))
    

    我验证了此代码适用于Tensorflow 1.0发布候选版 . 希望有所帮助!

相关问题