簡體   English   中英

TypeError: unhashable type: 'numpy.ndarray' Python3.9 圖像分類使用 tensorflow 和 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'

我嘗試使用 output 檢查來自 pred 的數據

[30990.06  46435.57  17636.973 16334.658 15860.342 16765.371 26879.748
 14579.97  41989.523 34359.215]

我不知道為什么,因為數據來自一組數組

我是新手,我正在使用 python3.9 有人可以幫助我嗎

您正在嘗試訪問第 49 行的 classes 變量

sign = classes[pred]

類的類型是numpy.ndarray 因此,您嘗試訪問索引為pred的數組,但由於pred不是數字,因此引發了unhashable type: 'numpy.ndarray'錯誤。

您通過使用鍵而不是索引來訪問類的值,從而將類視為字典。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM