我试图理解tensorflow 中的占位符,特别是下面例子中shape=[None,
的含义。
X = tf.placeholder(tf.float32, shape=[None, 128, 128, 3], name="X")
This答案将其描述为:
您可以将TensorFlow中的占位符视为指定将馈送到图表中的数据的形状和类型的操作。占位符X定义将馈送到图表中的float32类型的形状(128,128,3)的未指定行数。占位符不保存状态,仅定义要流入图表的数据的类型和形状。
当它说“未指定的行数”时,它真的意味着未指定的1281283形状的Tensor数吗?就像你为CNN的输入图像创建一个占位符一样?
2条答案
按热度按时间bwleehnv1#
第一维代表样本的数量(在你的例子中是图像)。你不想在这里硬编码一个特定的数字的原因是为了保持灵活性,并允许任何数量的样本。通过把
None
作为Tensor的第一维,你可以实现这一点。考虑以下三个非常常见的操作:1.批量培训:您将使用长度相对较小(32、64 ...)的样本批次
1.列车评估:对所有训练样本的性能评估
1.测试评估:所有测试样本的性能评价
所有这些通常都适用于不同数量的样本。但是,您不必担心,因为
None
已经覆盖了您。bz4sfanl2#
参考tf.TensorShape的官方文件
“无”是指:
部分已知形状:具有已知的维度数,但一个或多个维度的大小未知。例如TensorShape([None,256])
https://www.tensorflow.org/api_docs/python/tf/TensorShape#used-in-the-notebooks