作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 cifar 数据集的图像分类。我获得了预测标签作为从 0-1 映射到 10 个不同类别的输出,有什么方法可以找到预测标签所属的类别吗?
//sample output obtained
array([3.3655483e-04, 9.4402254e-01, 1.1646092e-03, 2.8560971e-04,
1.4086446e-04, 7.1564602e-05, 2.4985364e-03, 6.5030693e-04,
3.4783698e-05, 5.0794542e-02], dtype=float32)
一种方法是找到最大值并将该索引设为 1,其余为 0。
//for above case it should look like this
array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0])
任何人都可以告诉我如何做到这一点,或者如果您有更好的方法,请提出建议。谢谢
最佳答案
就这么简单
>>> data = np.array([3.3655483e-04, 9.4402254e-01, 1.1646092e-03, 2.8560971e-04,
... 1.4086446e-04, 7.1564602e-05, 2.4985364e-03, 6.5030693e-04,
... 3.4783698e-05, 5.0794542e-02], dtype=np.float32)
>>>
>>> (data == data.max()).view(np.int8)
array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int8)
解释:data.max()
查找最大值。我们将其与每个单独的元素进行比较,以获得真值向量。然后,我们利用 True
映射到 1
和 False
映射到 0
的事实将其转换为整数。
请注意,如果最大值不唯一,这将返回多个。
关于validation - 如何将多类分类后得到的结果映射到1和0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49704530/
我是一名优秀的程序员,十分优秀!