mask的用法

之前无数次遇见mask,这次总算搞懂了,简单总结下:

  1. 控制损失中不同样本的分量

假设损失是对N个样本的单独损失求和,而网络对某些样本的预测已经足够精确了,这时候就可以利用mask(我也不懂为什么要叫mask)控制损失计算时,不同样本的权重,让损失更关注结果差的样本

masks = torch.zeros(len(index)).float().cuda() # 创建masks
for m in range(len(masks)):
	iou = get_iou(index[m], gt_index[m]) # 以iou作为衡量每个样本预测效果的指标
	masks[m] = (1-iou) # masks与iou值相反,iou越大,表示预测效果越好,则该样本在损失计算中越低
loss = loss * masks # 将计算好的损失乘以masks

注:这种用法,要求masks的维度就是样本数

  1. 损失计算时覆盖掉非法数值

我的任务中,这个问题非常常见,因为任务的目标是预测每个视频的起始点和结束点,所以有时深度模型可能将起始点预测到结束点之后,这是不合法的,因此可以用mask来解决此类问题

这里就不举例了,不同场景下不一样

  1. 图像分割任务中的掩码

不展开讲,没研究过这个任务

  1. nlp中应对pad机制

参考知乎回答,有机会整理案例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值