输入错误:不可用类型'list'或'numpy.ndarray'

问题描述 投票:0回答:1

我有一个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.float32tf.float32数据类型!我正在使用python3和tensorflow版本1.1

python python-3.x list numpy tensorflow
1个回答
2
投票

你的代码中有一个小错字。你写的地方:

feed_dict.update({fs, features})

你应该写的:

feed_dict.update({fs: features})

请注意逗号被冒号替换。

这是怎么回事

在你的代码中,你不小心试图创建一个包含fsfeatures的集合,你要做的就是创建一个字典。为了放在一个集合中,python对象必须实现一个名为__hash__的方法。并非所有对象都实现此方法(出于好的理由)并且包括列表和numpy数组。因此,您收到有关“不可用类型”的错误消息的原因是因为您无意中尝试创建包含features的集合。

© www.soinside.com 2019 - 2024. All rights reserved.