首页 > 解决方案 > 如何在数组中制作model.predict?

问题描述

我有两类狗和猫。我为这些类别制作了一个列表:

labels = ["cats", "dogs"]

我试过使用

pred_name = labels[np.argmax(prob)]

给我看标签。但我对 model.predict(img) 有疑问。

它只向我显示 1. 而不是数组 [0. 1.]。

import cv2
import numpy as np


img = cv2.imread('D:cat.jpg')
img = cv2.resize(img,(150,150))
img = np.reshape(img,[1,150,150,3])

labels=["cats", "dogs"]

classes = model.predict_classes(img)
print(classes)

prob=model.predict(img)
print("%.2f" % prob)

pred_name = labels[np.argmax(prob)]
print(pred_name)

我希望我的 model.predict 向我显示一个数组([0. 1.] 或 [1. 0.]),而不仅仅是一个数字 0 或 1,因此我可以将数组应用于 argmax。

先感谢您。

标签: pythonpython-3.x

解决方案


model.predict应该返回类的概率。由于您得到[1] or [0]这可能是与培训部分相关的一些不同问题。

参考 Keras 中的这个Returning Probabilities,您的实际问题可能是数据的规范化。否则predict应该给出概率的输出。不是确切的类。


推荐阅读