tensorflow占位符-了解`shape = [None,`

时间:2018-07-16 17:07:13

标签: python tensorflow

我试图了解张量流中的占位符。具体来说,shape=[None,在以下示例中的含义。

X = tf.placeholder(tf.float32, shape=[None, 128, 128, 3], name="X")

This答案描述为:

  

您可以将TensorFlow中的占位符视为   指定将要输入的数据的形状和类型的操作   graph.placeholder X定义了未指定数量的形状行   float32类型的(128,128,3)将被送入图形。一种   占位符不保持状态,仅定义类型和形状   数据流到图中。

当它说“未指定数量的ROWS”时,是否真的意味着未指定数量的形状为128 * 128 * 3的张量?就像您要为输入图像创建占位符以将输入图像输入CNN一样?

1 个答案:

答案 0 :(得分:4)

第一维表示样本数(您所用的图像)。您不希望对特定数字进行硬编码的原因是为了保持灵活性,并允许任意数量的样本。通过将None作为张量的第一维,可以启用该功能。考虑以下3个非常常见的操作:

  1. 批量培训:您将使用一批长度相对较短(32、64,...)的样本
  2. 培训评估:评估所有训练样本的表现
  3. 测试评估:对所有测试样本的评估效果

所有这些一般都可以使用不同数量的样本。但是,您不必担心,因为None可以帮助您。