2017-11-25 122 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