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

Nim*_*z14 9 python tensorflow

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

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

有什么建议?

小智 15

您可以使用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])}))
Run Code Online (Sandbox Code Playgroud)

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