學習TensorFlow的過程中最不缺的就是各種報錯。痛定思痛,記錄一下學習中遇到的錯誤~
文章目錄
1. UnicodeDecodeError:‘gbk’ codec can’t decode byte 0xa3 in position 29: illegal multibyte sequence
在讀入文件的時候容易出的錯,Python 3 版本中直接在打開文件的時候指定編碼方式爲 utf-8
即可。也就是:
with open(filename, mode='r', encoding='utf-8')
2.TypeError: Failed to convert object of type <class ‘builtin_function_or_method’> to Tensor.
報錯:
TypeError: Failed to convert object of type <class 'builtin_function_or_method'> to Tensor.
Contents: <built-in function input>. Consider casting elements to a supported type.
原因:
函數錯誤,應檢查是否函數的輸入有錯誤,我這裏的錯誤是,寫錯了一個函數輸入的名稱(inputs 寫成了 input, 這種錯誤關鍵還沒有具體錯誤信息。。。淚目)
3.InvalidArgumentError: Shape must be rank 4 but is rank 1 for ‘Conv2D’ (op: ‘Conv2D’) with input shapes: [?,3,2,1], [4].
出現這種 InvalidArgumentError 的錯誤,一般都是矩陣的維度沒有對整齊,直接查找相關的代碼是否矩陣維度是否出現錯誤,在這裏我出現的錯誤就是 放錯了權重矩陣,其實這裏後面的給出的矩陣維度信息還是很關鍵的,在這裏的報錯中說明應該是一個[a, b,c, d]的四維數組,但是我傳入的數組信息是[a]一維的,直接查找相關的數組即可。
4.TypeError: unhashable type: ‘list’
在具體位置信息裏,有這樣的:
bias = tf.Variable(tf.constant(0.1, [num_class]))
錯誤的地方在於 [num_class] 的寫法不對,這裏我原本是想要按照這個shape進行初始化,但是查看一下文檔就可以知道, tf.constant()的參數中,有兩個類型是 any 的,所以會造成混淆,因此,要指定這個參數是shape