2017-11-25 120 views
2

与大多数编程语言不同,TensorFlow不将数组的形状视为类型的一部分。这样做的缺点是,如果你犯了一个错误并且意外地提供了错误形状的数据,它可能会默默地给出错误的答案,例如Slightly different shape converges to wrong number - why?这使调试变得困难。TensorFlow形状检查器

TF是否存在形状检查器?也就是说,可以分析图形的功能或程序(如果需要,样本feed_dict),并在形状不匹配时发出警报?

回答

3

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