TypeError: unhashable type: 'numpy.ndarray' Python3.9 image classification using tensorflow and keras
TypeError: unhashable type: 'numpy.ndarray' Python3.9 image classification using tensorflow and keras
我试试这个图像分类示例代码
def show_classify_button(file_path):
classify_btn = Button(top, text="Classify Image", command=lambda: classify(file_path), padx=10, pady=5)
classify_btn.configure(background="#364156", foreground="white", font=('arial',10,'bold'))
classify_btn.place(relx=0.79,rely=0.46)
def classify(file_path):
image = Image.open(file_path)
image = image.resize((32,32))
image = numpy.expand_dims(image, axis=0)
image = numpy.array(image)
pred = model.predict([image])[0]
sign = classes[pred]
print(sign)
label.configure(foreground='#011638')
终端弹出这个
Traceback (most recent call last):
line 39, in <lambda>
classify_btn = Button(top, text="Classify Image", command=lambda: classify(file_path), padx=10, pady=5)
line 49, in classify
sign = classes[pred]
TypeError: unhashable type: 'numpy.ndarray'
我尝试用输出检查来自 pred 的数据
[30990.06 46435.57 17636.973 16334.658 15860.342 16765.371 26879.748
14579.97 41989.523 34359.215]
我不确定为什么,因为数据来自一组数组
我是新手,我正在使用 python3.9 有人可以帮助我吗
您正在尝试访问第 49 行的 类 变量
sign = classes[pred]
类 是 numpy.ndarray
类型。
因此,您尝试访问索引为 pred
的数组,但由于 pred
不是数字,因此会引发 unhashable type: 'numpy.ndarray'
错误。
您通过使用键而不是索引访问它的值,将 类 视为字典。
我试试这个图像分类示例代码
def show_classify_button(file_path):
classify_btn = Button(top, text="Classify Image", command=lambda: classify(file_path), padx=10, pady=5)
classify_btn.configure(background="#364156", foreground="white", font=('arial',10,'bold'))
classify_btn.place(relx=0.79,rely=0.46)
def classify(file_path):
image = Image.open(file_path)
image = image.resize((32,32))
image = numpy.expand_dims(image, axis=0)
image = numpy.array(image)
pred = model.predict([image])[0]
sign = classes[pred]
print(sign)
label.configure(foreground='#011638')
终端弹出这个
Traceback (most recent call last):
line 39, in <lambda>
classify_btn = Button(top, text="Classify Image", command=lambda: classify(file_path), padx=10, pady=5)
line 49, in classify
sign = classes[pred]
TypeError: unhashable type: 'numpy.ndarray'
我尝试用输出检查来自 pred 的数据
[30990.06 46435.57 17636.973 16334.658 15860.342 16765.371 26879.748
14579.97 41989.523 34359.215]
我不确定为什么,因为数据来自一组数组
我是新手,我正在使用 python3.9 有人可以帮助我吗
您正在尝试访问第 49 行的 类 变量
sign = classes[pred]
类 是 numpy.ndarray
类型。
因此,您尝试访问索引为 pred
的数组,但由于 pred
不是数字,因此会引发 unhashable type: 'numpy.ndarray'
错误。
您通过使用键而不是索引访问它的值,将 类 视为字典。