为了账号安全,请及时绑定邮箱和手机立即绑定

如何在keras预测模型CNN中获得概率百分比

如何在keras预测模型CNN中获得概率百分比

慕标琳琳 2021-07-09 09:00:02
在这里,我得到的数据为 [0 1 0 0] 或 [0 0 0 1],--- 我明白它告诉我 [0 1 0 0] 是 label2,[0 0 0 1] 是label4,[1 0 0 0] 是 label1,[0 0 1 0] 是 label3。import picklefrom keras.preprocessing.sequence import pad_sequencesMAX_SEQUENCE_LENGTH = 1000MAX_NB_WORDS = 20000with open ('textsdata', 'rb') as fp:    texts = pickle.load(fp)tokenizer = Tokenizer(num_words=MAX_NB_WORDS)tokenizer.fit_on_texts(texts)sequences = tokenizer.texts_to_sequences(texts)inputquery = ["Play some music will ya"]sequences = tokenizer.texts_to_sequences(inputquery)model = load_model('my_model.h5')model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['acc'])print("sequences", sequences)data = pad_sequences(sequences, maxlen=MAX_SEQUENCE_LENGTH)classes = model.predict(data)y_classes = classes.argmax(axis=-1)print(y_classes)我需要它的百分比就像它有信心它是 label1 为 0.67 softmax 之前的值或有足够信心告诉它是 label1 或 label2 或 label3 或 label4 的值 -我需要它的百分比是其中任何一个或所有这些百分比,例如......如果给定输入,输出就像1 级 - 0.872 级 - 0.33 级 - 0.5Class4 - 0.5 我怎样才能得到这种输出,而不仅仅是 [1 0 0 0] 我应该在上面的代码旁边添加什么,请告诉
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

from keras.models import load_model


from keras.preprocessing import image


model=load_model("/blah/blah/blah")


img = image.load_img(path, color_mode = "grayscale", target_size=(128, 128, 1))


y = image.img_to_array(img)


y = np.expand_dims(y, axis=0)


images = np.vstack([y])


classes = model.predict(images/255.0, batch_size=8, verbose=0)


查看完整回答
反对 回复 2021-07-13
?
达令说

TA贡献1821条经验 获得超6个赞

predict 返回一个包含预测的列表。你可以用这个


results = model.predict(data)

for result in results:

    print(str(result))

这将返回


0.99

0.87

0.75

或者如果你在另一个列表中有这些类,你应该这样做。


res = model.predict(data)

results = [[i,r] for i,r in enumerate(res)]

results.sort(key=lambda x: x[1], reverse=True)

for r in results:

    print(classes[r[0]], str(r[1])))

这返回


("classA", 0.99)

("classB", 0.95)


查看完整回答
反对 回复 2021-07-13
?
萧十郎

TA贡献1815条经验 获得超13个赞

有一个名为的方法predict_proba返回单个类的概率而不是类预测。这可以用作

probabilities = model.predict_proba(data)

在此博客中查找更多信息。


查看完整回答
反对 回复 2021-07-13
  • 3 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号