我有一个tensorflow占位符定义为:
fs = tf.placeholder(tf.float32, shape=(nn, mm))
在代码中,我想要提供它。我会用shape = (nn, mm)
获得一个numpy数组“功能”,我写道:
feed_dict.update({fs, features})
但是,我收到错误:
TypeError: Unhashable type"numpy.ndarray"
因为我已经可以使用lenght = nn
将列表与shape = (nn,)
一起提供给占位符
因此,在将numpy数组提供给占位符之前,我写道
features = features.tolist() #to make them as a list, not numpy array!
再次,我得到了一个类似的错误:
TypeError: Unhashable type "list"
所以,我想知道如何将2d numpy数组馈入2d tensorflow占位符?
我也检查过他们都有np.float32
和tf.float32
数据类型!我正在使用python3和tensorflow版本1.1
你的代码中有一个小错字。你写的地方:
feed_dict.update({fs, features})
你应该写的:
feed_dict.update({fs: features})
请注意逗号被冒号替换。
这是怎么回事
在你的代码中,你不小心试图创建一个包含fs
和features
的集合,你要做的就是创建一个字典。为了放在一个集合中,python对象必须实现一个名为__hash__
的方法。并非所有对象都实现此方法(出于好的理由)并且包括列表和numpy数组。因此,您收到有关“不可用类型”的错误消息的原因是因为您无意中尝试创建包含features
的集合。