2017-04-16 86 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/