最近在看《TensorFlow 實戰Google深度學習框架第二版》這本書,測試LeNet-5這個模型時遇到了TypeError: Failed to convert object of type <class 'list'> to Tensor的報錯,由於書作者沒有給出測試的代碼,所以根據前面第五章給出的mnist測試代碼修改了測試的代碼。至於報錯的原因尚且不是很清楚,不過找到了解決方法。只要設置好輸入數據X的每個維度大小就可以了。比如
x = tf.placeholder(tf.float32, [mnist.validation.images.shape[0],
mnist_inference.IMAGE_SIZE, mnist_inference.IMAGE_SIZE, mnist_inference.NUM_CHANNELS], name='x-input') y_ = tf.placeholder(tf.float32, [None, mnist_inference.OUTPUT_NODE], name='y-input') y = mnist_inference.inference(x, None, None)
mnist.validation.images.shape[0] 這個參數在這里一定要指定,原因不明,希望知道的大佬評論區提示一下。個人猜測是下面數據進行resape的時候發生了什么變化,或者是發生了隱式轉換,所以不指定
在喂數據的時候會報類型不符,並且我也試了一下訓練的代碼也有同樣問題。但是第五章提供的代碼中x的第一維的大小是None,但是卻是可以正確運行的。所以才有了上面的結論。
參考:https://blog.csdn.net/weixin_41695564/article/details/80240106
如果你覺得我說的有不對的地方,歡迎指正。謝謝。
