在使用 Keras 的flow_from_directory
方法在多类图像分类问题上训练我的模型时,该predict_generator
函数给出了类概率。
那么,我的查询是如何为这些类概率获取相应的类标签?
在使用 Keras 的flow_from_directory
方法在多类图像分类问题上训练我的模型时,该predict_generator
函数给出了类概率。
那么,我的查询是如何为这些类概率获取相应的类标签?
您只需以最大概率参加课程。这可以使用 numpy argmax 函数来完成。
我意识到这个问题是在一段时间前提出的,但遇到了这个问题,并认为会分享我所做的事情
最好使用 keras 模型中的 predict_classes 函数而不是 predict_generator - 我在使用它时遇到了问题,并且需要花费时间来完成。然而,这个函数的输入数据必须是一个数组,这意味着我们必须使用:
yFit=model.predict_classes(data)
#post which use the train generator to map the labels
#back to actual names of the classes
label_map = (train_generator.class_indices)
label_map = dict((v,k) for k,v in label_map.items()) #flip k,v
predictions = [label_map[k] for k in yFit]
只是为了简化接收类标签的事情,请尝试:
predict_img = '../Directory'
predict_img = image.load_img(predict_paper_1,target_size="your models target size")
转换为 numpy 数组
predict_img = image.img_to_array(predict_paper_1)
predict_img = np.expand_dims(predict_img,axis=0) # position from where converted image array is read
yFit=model.predict_classes(predict_img)
#post which use the trained generator to map the labels
#back to actual names of the classes
label_map = (train_gen.class_indices)
label_map = dict((v,k) for k,v in label_map.items()) #flip k,v
predictions = [label_map[k] for k in yFit[:,0]] # YFIT[:,0] INSURES THAT THE ARRAY IS READ IN THE RIGHT SHAPE
print(predictions)