使张量具有batch_size作为值

时间:2018-07-16 18:27:12

标签: tensorflow

如何使用批量大小作为值构造张量?可以说我有

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

1 个答案:

答案 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]