in classify sign = classes[pred] TypeError: unhashable type: 'numpy.ndarray'

in classify sign = classes[pred] TypeError: unhashable type: 'numpy.ndarray'

Tkinter 回调异常 追溯(最近一次通话): 文件“C:\python\lib\tkinter_init_.py”,第 1921 行,在 call 中 return self.func(*参数) 文件“C:\Users\umutc\PycharmProjects\pythonProject2\main.py”,第 189 行,位于 classify_b = Button(top, text="Görseli Sınıflandır", command=lambda: classify(file_path), padx=10, pady=10) 分类中的文件“C:\Users\umutc\PycharmProjects\pythonProject2\main.py”,第 171 行 符号 = 类[pred] 类型错误:不可散列的类型:'numpy.ndarray'

# Classifier Function / Sınıflandırma Fonksiyonu
def classify(file_path):
    global label_packed
    image = Image.open(file_path)
    image = image.resize((32, 32))
    image = numpy.expand_dims(image, axis=0)
    pred = model.predict([image])[0]
    sign = classes[pred]
    print(sign)

根据评论,您似乎在尝试使用数组访问字典中的值。当然那是行不通的。 classes 的键是 int,不是数组。即使您使用 pred 的元素而不是整个对象,元素也是浮点数,而不是整数。您可能想要的是 classes[max(range(len(pred)), key = lambda x: pred[x])]。这会在pred中找到最大值,然后找到那个数的索引,然后在classes中找到对应的值。我不知道模块 model 来自哪个模块,但如果您查找该模块的文档,可能有更惯用的获取方式。