-
问题描述:在使用预测模型预测图片的时候,输出的是一个整数,而不是图片的类别名称。
-
报错信息:
infer results: 5
- 问题复现:使用训练保存的预测模型预测经过预处理的图片,使用预测的结果经过
np.argmax(results[0])
进行处理,获取概率最大的值,最后输出的是一个整数值。复现代码如下:
img = load_image('dog.png')
results = inferencer.infer({'pixel': img})
print("infer results: ", np.argmax(results[0]))
- 解决问题:在训练的时候,使用的是类别的标签,也就是一个整数,所以在预测的时候输出的也是类别的标签。需要输出类别的名称,还要根据标签对应的类别名称进行输出。
img = load_image('dog.png')
results = inferencer.infer({'pixel': img})
label_list = [
"airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse",
"ship", "truck"]
print("infer results: ", label_list[np.argmax(results[0])])
- 问题拓展:PaddlePaddle的分类标签都是整数值,其中
int64
类型的标签非常常用。PaddlePaddle的分类标签不支持使用字符串的方式输入类别名称,所以都是整数作为类别的标签,而已必须要从0开始标记。