为什么在tensorflow中使用None作为批量维度?

时间:2017-06-09 15:09:25

标签: python tensorflow

在以下代码中,None用于声明占位符的大小。

x_data = tf.placeholder(tf.int32, [None, max_sequence_length]) 
y_output = tf.placeholder(tf.int32, [None])

据我所知,此None用于指定变量批量维度。但是,在每个代码中,我们都有一个显示批量大小的变量,例如:

batch_size = 250

那么,在这种情况下是否有理由使用None而不是简单地将占位符声明为?

x_data = tf.placeholder(tf.int32, [batch_size, max_sequence_length]) 
y_output = tf.placeholder(tf.int32, [batch_size])

1 个答案:

答案 0 :(得分:3)

网络的输入不会限制为固定大小的批次,您可以稍后重复使用学习的网络来预测单个实例或任意长批次(例如,预测所有测试样品一次)。

换句话说,它在培训期间做的不多,因为无论如何,批次在转换期间通常具有固定的大小,但它使网络在测试时更有用。