如何使用批量大小作为值构造张量?可以说我有
X = tf.placeholder(shape=[None,1], dtype=tf.int64)
,我想用tf.SparseVector
的{{1}}构造一个dense_shape
,其中[batch_size, 10]
将是batch_size
的动态量。在我的应用中,X.get_shape()[0]
在评估之间是动态的。
如果我在张量流图中进行了某些操作
batch_size
我遇到错误。也许是因为我试图使用batch_size = X.get_shape()[0]
dense_shape = tf.constant([batch_size, 10])
而不是其他东西吗?也许您不能这样做,我不认为tf.constant
实际上是张量,它打印为
batch_size
答案 0 :(得分:0)
您可能希望使用tf.shape()
来获得形状作为张量,例如tf.stack()
建立新形状:
import tensorflow as tf
X = tf.placeholder(shape=[None,1], dtype=tf.int64)
batch_size = tf.shape(X)[0]
dense_shape = tf.stack([batch_size, 10])
with tf.Session() as sess:
print(sess.run(dense_shape, feed_dict={X: [[1], [2], [3], [4]]}))
# [4, 10]