python - 如何在数组中制作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。
先感谢您。
解决方案
model.predict
应该返回类的概率。由于您得到[1] or [0]
这可能是与培训部分相关的一些不同问题。
参考 Keras 中的这个Returning Probabilities,您的实际问题可能是数据的规范化。否则predict
应该给出概率的输出。不是确切的类。
推荐阅读
- google-api - 谷歌日历 api 不再发送 exdates
- javascript - JS可以像PHP一样自动分配键吗?
- python - 对 python 非常陌生并且努力使用这个 API
- python - 在需要在导入期间创建文件的 Singularity 容器中安装 Python 包(例如,启用 GPU 渲染的 mujoco_py)
- git - Git:手动编辑整个文件的差异以进行选择性暂存?
- youtubeplayer - 试图改变嵌入式 youtube 播放器的位置
- google-cloud-platform - 旧的 Google Cloud SDK Debian 软件包发生了什么?
- javascript - Styled-Components - 样式在悬停上下文中不起作用
- c# - 确保表格中没有重叠间隔的好方法
- python - Pandas 从多索引中提取百分位数范围