没有合适的资源?快使用搜索试试~ 我知道了~
pytorch下实现mIou(mean intersection over union)和pA(pixel accuracy)
12 下载量 96 浏览量
2021-01-06
14:00:40
上传
评论 1
收藏 26KB PDF 举报
温馨提示
试读
1页
mIou import torch import numpy as np def Iou(input,target,classNum): ''' :param input: [b,h,w] :param target: [b,h,w] :param classNum: scalar :return: ''' inputTmp = torch.zeros([input.shape[0],classNum,input.shape[1],input.shape[2]])#创建[b,c,h,w]大小的0矩阵 targetTmp = to
资源推荐
资源详情
资源评论
pytorch下实现下实现mIou(mean intersection over union)和和
pA(pixel accuracy)
mIou
import torch
import numpy as np
def Iou(input,target,classNum):
'''
:param input: [b,h,w] :param target: [b,h,w] :param classNum: scalar
:return:
'''
inputTmp = torch.zeros([input.shape[0],classNum,input.shape[1],input.shape[2]])#创建[b,c,h,w]大小的0矩阵
targetTmp = torch.zeros([target.shape[0],classNum,target.shape[1],target.shape[2]])#同上
input = input.unsqueeze(1)#将input维度扩充为[b,1,h,w] target = target.unsqueeze(1)#同上
inputOht = inputTmp.scatter_(index=input,dim=1,value=1)#input作为索引,将0矩阵转换为onehot矩阵
targetOht = targetTmp.scatter_(index=target,dim=1,value=1)#同上
batchMious = []#为该batch中每张图像存储一个miou
mul = inputOht * targetOht#乘法计算后,其中1的个数为intersection
for i in range(input.shape[0]):#遍历图像
ious = [] for j in range(classNum):#遍历类别,包括背景
intersection = torch.sum(mul[i][j])
union = torch.sum(inputOht[i][j]) + torch.sum(targetOht[i][j]) - intersection + 1e-6
iou = intersection / union
ious.append(iou)
miou = np.mean(ious)#计算该图像的miou
batchMious.append(miou)
return batchMious
pA:对单张图像直接计算pa,没有进行分类计算取平均
def Pa(input,target):
'''
:param input: [b,h,w] :param target: [b,h,w] :param classNum: scalar
:return:
'''
tmp = input == target
return (torch.sum(tmp).float() / input.nelement())
作者:TensorFlowBoys
资源评论
weixin_38706603
- 粉丝: 10
- 资源: 923
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功