Python tensorflow占位符-理解`shape=[None`

Python tensorflow占位符-理解`shape=[None`,python,tensorflow,Python,Tensorflow,我试图理解tensorflow中的占位符。在下面的示例中,shape=[None,具体是什么意思 X = tf.placeholder(tf.float32, shape=[None, 128, 128, 3], name="X") 答案是: 您可以将TensorFlow中的占位符视为 指定要输入的数据的形状和类型的操作 graph.placeholder X定义了未指定数量的形状行 float32类型的(128、128、3)将被输入到图中。a 占位符不包含状态,仅定义类型和形状 要流入图形的

我试图理解tensorflow中的占位符。在下面的示例中,
shape=[None,
具体是什么意思

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

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


当它说“未指定行数”时,它真的是指未指定数量的128*128*3形状的张量吗?就像你正在为CNN的输入图像创建一个占位符一样?

第一个维度表示样本数(在你的例子中是图像)为什么你不想硬编码一个特定的数字是为了保持灵活性,允许任何数量的样本。通过把<代码> NON/COMP>作为张量的第一个维度,你就可以做到这一点。考虑下面3个非常常见的动作:

  • 批量培训:您将使用长度相对较小的批量样本(32,64,…)
  • 培训评估:评估所有培训样本的绩效
  • 测试评估:评估所有测试样本的性能
  • 所有这些都适用于不同数量的样本。但是,您不必担心,因为
    None
    已经涵盖了您