2017-04-16 85 views
1

我在keras中使用預先訓練的模型,並最終預測類指數是一些整數值,但我似乎不知道如何打印這些類的名稱?如何在使用keras的神經網絡中打印預測類的名稱?

我使用的模型是RESNET 50

編輯:還是無法弄清楚,對我得到它回答到編輯它,它真的很重要。

+0

什麼樣的數據集是您使用我沒有使用任何數據集 – maz

+0

@maz,該模型已被訓練。我不需要數據集來訓練它。 – ash

+2

所以這取決於你在做什麼。如果您正在使用標準的預培訓模型完全相同的應用程序,您應該查看什麼是原始類表。正如你使用的是resnet-50,我想它是用imagenet數據集訓練的,所以你需要一個字典(或者一個列表或者其他)來查看。對於imagenet的情況,我發現這個醃字典:https://gist.github.com/yrevar/6135f1bd8dcf2e0cc683。看看這個 – maz

回答

0

看一看https://martin-thoma.com/image-classification/

的關鍵部分是:

from imagenet_utils import preprocess_input, decode_predictions 

preds = model.predict(x) 
print('Predicted:', decode_predictions(preds)) 
+0

從'imagenet_utils'替換'from keras.applications.imagenet_utils'後的工作。 – jkdev

+0

此外,這僅適用於ImageNet使用的1000個類。如果你的課程不同,它將不起作用。 – jkdev

0

如果你不使用imagenet數據,但再培訓自己的一套:當使用ImageDataGenerator的keras' flow_from_directory,它方便將您的文件夾的標籤保存在dict之內.class_indices!字典的值對應於您的model.predict輸出的位置。

原油例如:

preds = model.predict(x) 
for cls in training_generator.class_indices: 
    print(cls+": "+preds[0][training_generator.class_indices[cls]]) 

參見:https://keras.io/preprocessing/image/