1. 程式人生 > >TensorFlow 報錯:unhashable type: 'numpy.ndarray' error 的可能錯因

TensorFlow 報錯:unhashable type: 'numpy.ndarray' error 的可能錯因

一般來說是sess.run裡的feed_dict字典內部出現了問題。feed_dict的引數一般存放的是佔位符placeholder,通過feed_dict將具體資料“喂”進placeholder。unhashable type: 'numpy.ndarray' error報了這樣的錯,極有可能是因為feed_dict的內部的鍵(placeholder)與值不匹配。

通過上網查閱以及我個人出現的情況,目前發現兩個比較有可能導致的錯因會報這樣的錯:

  1. 比如placeholdertf.float32,而feed進去的具體資料為np.int64,這樣就會需要將所對應的型別設為一致。
  2. 這也是博主個人所犯的錯誤,placeholder
    內部設定的size與“喂”進去的資料的size不匹配。同樣,需要將其設定為一致。
  3. 第三條是博主上午犯完錯之後下午又遇到了,這次博主犯的錯是 鍵與值的變數名設成完全一樣!類似下面這種感覺,我最後將mask_c “喂”進了mask_c,所以要注意鍵與值的變數名不能設為一致呀。
_, seis_recon_loss = sess.run([train_G_op, seis_recon_loss], feed_dict = {images_tf : batch, incomplete_images_tf : incomplete_batch, mask_c : mask_c})

歡迎各位若遇到不同的情況報了相同的錯誤在下面評論補充,贈人玫瑰,手留餘香。