与大多数编程语言不同,TensorFlow不将数组的形状视为类型的一部分。这样做的缺点是,如果你犯了一个错误并且意外地提供了错误形状的数据,它可能会默默地给出错误的答案,例如Slightly different shape converges to wrong number - why?这使调试变得困难。TensorFlow形状检查器
TF是否存在形状检查器?也就是说,可以分析图形的功能或程序(如果需要,样本feed_dict
),并在形状不匹配时发出警报?
与大多数编程语言不同,TensorFlow不将数组的形状视为类型的一部分。这样做的缺点是,如果你犯了一个错误并且意外地提供了错误形状的数据,它可能会默默地给出错误的答案,例如Slightly different shape converges to wrong number - why?这使调试变得困难。TensorFlow形状检查器
TF是否存在形状检查器?也就是说,可以分析图形的功能或程序(如果需要,样本feed_dict
),并在形状不匹配时发出警报?
Tensorflow确实提供了一个形状检查机制,它在技术上是声明Tensorflow占位符时应该指定的形状参数。默认情况下,张量流向形状为[无,无]。但是,例如,如果在声明占位符时指定了形状,则每当用户输入不正确/冲突形状的数据时,都会引发形状错误。例如 可以说,我宣布一个占位符名为X并没有太大指定其外形的参数:
X=tf.placeholder(dtype=tf.float32, shape=[None,256])
现在,这意味着数X的行可以不同,但功能数量将永远是256,现在如果我错误地输入形状数据可以说1000行和20个特征,则会引起形状误差。
此外,检查此链接:https://www.tensorflow.org/api_docs/python/tf/placeholder
用途:
print(str(tf.Shape(test_tensor))) # where test_tensor is
whatever your tensor's name is