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

2ic8powd  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(327)

我试图理解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的输入图像创建一个占位符一样?

bwleehnv

bwleehnv1#

第一维代表样本的数量(在你的例子中是图像)。你不想在这里硬编码一个特定的数字的原因是为了保持灵活性,并允许任何数量的样本。通过把None作为Tensor的第一维,你可以实现这一点。考虑以下三个非常常见的操作:
1.批量培训:您将使用长度相对较小(32、64 ...)的样本批次
1.列车评估:对所有训练样本的性能评估
1.测试评估:所有测试样本的性能评价
所有这些通常都适用于不同数量的样本。但是,您不必担心,因为None已经覆盖了您。

bz4sfanl

bz4sfanl2#

参考tf.TensorShape的官方文件
“无”是指:
部分已知形状:具有已知的维度数,但一个或多个维度的大小未知。例如TensorShape([None,256])
https://www.tensorflow.org/api_docs/python/tf/TensorShape#used-in-the-notebooks

相关问题