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})

欢迎各位若遇到不同的情况报了相同的错误在下面评论补充,赠人玫瑰,手留余香。

猜你喜欢

转载自blog.csdn.net/yyhhlancelot/article/details/83007797
今日推荐