-
关键字:
预测结果
,数据字典
-
问题描述:使用训练好的模型参数和定义的网络创建一个预测器,使用这样预测器预测数据,得到一个预测结果,但是这个预测结果不是一个单词,而是一个数字。
-
问题复现:通过使用
paddle.fluid.contrib.inferencer.infer
预测接口预测四个单词数据,得到下一个单词。但是把最大概率的结果值输出,得到的是一个数字,而不是想要的一个字符串的单词。
result = inferencer.infer(inputs={'firstw': first_word,
'secondw': second_word,
'thirdw': third_word,
'fourthw': fourth_word},
return_numpy=False)
most_possible_word_index = numpy.argmax(result[0])
print("预测结果是:", most_possible_word_index)
- 解决问题:我们训练的时候传入的是一个张量数据,所以预测输出的也应该是一个张量类型的数据,输出的也就是一个张量数据。如果需要输出预测的当初,还有根据数据集的字典获取对应的单词。处理代码如下:
result = inferencer.infer(inputs={'firstw': first_word,
'secondw': second_word,
'thirdw': third_word,
'fourthw': fourth_word},
return_numpy=False)
most_possible_word_index = numpy.argmax(result[0])
print("预测结果是:", [key for key, value in six.iteritems(word_dict) if value == most_possible_word_index][0])
- 问题拓展:在图像分类任务上,预测得接时每个类别得概率,从这些结果中获取最概率的也是其数字标签。如果想得到类别的名称,还要根据数字标签对应的类别的名称才能获取预测结果的名称。