我们先看一下tf.placeholder()的用法
tf.placeholder(dtype,shape=Nonename=None)
参数:
- dtype:张量的数据类型
- shpe:张量的形状
- name:张量的名称
举例:
input_x = tf.placeholder(tf.int32, [None, 50, 128], 'input_x')
为什么这里第一维要用None呢,用batch_size(一般来说默认batch_size为训练时用的batch_size,即train_batch_size)不行吗?原因是在训练阶段我们可以以128条数据(train_batch_size=128)进行训练,而预测阶段我们可以对1条数据(eval_batch_size=1)进行预测,如果用train_batch_size把第一维固定死了,那在预测的时就必须一次性输入128条数据进行预测,所以为了灵活性,这里设为None。