我想batch_size
在 Tensorflow 中输入一个整数作为占位符。但它不充当整数。考虑以下示例:
import tensorflow as tf
max_length = 5
batch_size = 3
batch_size_placeholder = tf.placeholder(dtype=tf.int32)
mask_0 = tf.one_hot(indices=[0]*batch_size_placeholder, depth=max_length, on_value=0., off_value=1.)
mask_1 = tf.one_hot(indices=[0]*batch_size, depth=max_length, on_value=0., off_value=1.)
# new session
with tf.Session() as sess:
feed = {batch_size_placeholder : 3}
batch, mask0, mask1 = sess.run([
batch_size_placeholder, mask_0, mask_1
], feed_dict=feed)
当我打印 的值时,batch
我有以下内容:mask0
mask1
print(batch)
>>> array(3, dtype=int32)
print(mask0)
>>> array([[0., 1., 1., 1., 1.]], dtype=float32)
print(mask1)
>>> array([[0., 1., 1., 1., 1.],
[0., 1., 1., 1., 1.],
[0., 1., 1., 1., 1.]], dtype=float32)
确实我认为mask0
并且mask1
必须是相同的,但似乎 Tensorflow 并没有将batch_size_placeholder
其视为整数。我相信这将是一个张量,但无论如何我可以在我的计算中将它用作整数吗?
无论如何我可以解决这个问题吗?仅供参考,我仅用作示例,我想在训练期间在我的代码中运行训练/验证,在训练和验证步骤中tf.one_hot
,我需要许多具有不同值的其他计算。batch_size
任何帮助,将不胜感激。