python实现得到两列数据中元素相同的个数

最近在使用神经网络进行分类时,遇到一个问题时,当使用神经网络得出了一组预测标签之后,与真实标签比较想求准确率(accuracy)时非常不方便。在网上看了不少方法,有使用for循环进行迭代的,一个比一个很麻烦。今天发现了一个简单的方法,记录一下。
说明一下,numpy应该无法实现这种功能,我目前没有看到。(ps:以前用matlab时有这种自带函数)。
下面开始讲正题。
上代码。

import numpy as np
import torch

labels=np.random.randint(1,10,5)
print(labels)
prediction=np.random.randint(1,10,5)
print(prediction)
labels=torch.from_numpy(labels)
prediction=torch.from_numpy(prediction)
right_data=prediction.eq(labels.view_as(prediction)).numpy().sum()
print(right_data)
#right_data是预测标签和真实标签中元素相同的个数
输出结果
[8 3 1 9 4]
[3 3 6 2 5]
1

注意,这里是将numpy数据先转化为tensor后再进行的。代码中的 eqview_as 函数是tensor的专有函数。

这个时候就很方便求准确率accuracy了。

accuracy=right_data/len(labels)
print(accuracy)
输出结果
0.2

结束,如果您觉得有用的话,帮忙点个赞。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值