实例分割loss示例

news/2026/1/22 15:25:35/文章来源:https://www.cnblogs.com/picassooo/p/19517432
@LOSSES.register_module()
class LaneCustomWeightedLoss(nn.Module):def __init__(self,negative_ratio=3,loss_weight=1.0,type_num=3,  # Assuming there are 11 classesspecial_classes=[4],special_weight=5)super(LaneCustomWeightedLoss, self).__init__()self.type_num = type_numself.negative_ratio = negative_ratioself.loss_weight = loss_weightself.special_classes = special_classesself.special_weight = special_weightdef forward(self, pred_seg, gt_seg_cur, quality_weight):   # pred_seg:(bs, num_cls, H, W)B, H, W = gt_seg_cur.shapegt_seg_cur = gt_seg_cur.reshape(-1)pred_seg = pred_seg.permute(0, 2, 3, 1).reshape(-1, self.type_num)pmask = (gt_seg_cur > 0)   # 创建正样本掩码,标记真实标签中大于0的位置(即有车道线的位置)fpmask = pmask.float()n_pos = torch.sum(fpmask)nmask = (gt_seg_cur == 0)  # 创建负样本掩码,标记真实标签中等于0的位置(即无车道线的背景位置)fnmask = nmask.float()max_neg_entries = torch.sum(fnmask)n_neg = n_pos * self.negative_ratio   # 计算需要选择的负样本数量,按照正负样本比例(默认为1:3)n_neg = n_neg if n_neg < max_neg_entries else max_neg_entriesn_neg = n_neg if n_neg > 0 else torch.ones_like(n_neg)n_neg_int = n_neg.int()bg_predict = pred_seg[:, 0]   # 获取预测结果中背景类别的预测值val, indxes = torch.topk(bg_predict[nmask], k=n_neg_int, largest=False)  # 在负样本位置中找到预测值最小的 n_neg_int 个样本(最难的负样本)max_hard_pred = val[-1]nmask_ohem = ((bg_predict <= max_hard_pred) * nmask)   # 通过OHEM策略创建最终的负样本掩码,选择最难的负样本fnmask_ohem = nmask_ohem.float()log_p = F.log_softmax(pred_seg, dim=-1)q_log_p = -log_p.gather(dim=1, index=gt_seg_cur.unsqueeze(1).long()).squeeze(1)  # 提取真实类别对应的对数概率,并取负号得到交叉熵损失# Apply special weight to specific classesspecial_mask = torch.zeros_like(gt_seg_cur, dtype=torch.float)for cls in self.special_classes:special_mask += (gt_seg_cur == cls).float()weighted_q_log_p = q_log_p * (1 + self.special_weight * special_mask)   # 为特殊类别应用额外权重,普通类别权重为1,特殊类别权重为 1+special_weight# 根据质检结果改变loss权重assert len(quality_weight) == Bquality_weight = torch.tensor(quality_weight, device=pred_seg.device)[:, None, None].expand(B, H, W)quality_weight = quality_weight.reshape(-1)weighted_q_log_p *= quality_weighttotal_cross_pos = torch.sum(weighted_q_log_p * fpmask)   # 计算加权后的正样本交叉熵损失总和total_cross_neg = torch.sum(weighted_q_log_p * fnmask_ohem)   # 计算加权后的负样本交叉熵损失总和(仅包含OHEM选中的困难负样本)total_cross_pos = total_cross_pos / n_pos if n_pos > 0 else torch.zeros_like(total_cross_pos)total_cross_neg = total_cross_neg / n_negtotal_cross_pos = total_cross_pos * self.loss_weighttotal_cross_neg = total_cross_neg * self.loss_weightreturn total_cross_pos + total_cross_neg,  pmask.view(B,H,W)

  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1200646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

621-0010-AR模拟输出模块

621-0010-AR 模拟输出模块 621-0010-AR 是工业控制系统中的 高级模拟输出模块&#xff0c;主要功能是将控制器或逻辑单元发出的数字信号转换成精确的模拟电流或电压信号&#xff0c;驱动现场执行器设备&#xff0c;实现连续过程控制。 核心作用 数字信号转换&#xff1a;把控…

【开题答辩全过程】以 基于java的宠物领养系统的设计与实现为例,包含答辩的问题和答案

个人简介 一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等 开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。 感谢大家…

【开题答辩全过程】以 基于BS架构的酒店信息管理系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

救命神器 2026 9款一键生成论文工具测评:本科生毕业论文必备清单

救命神器 2026 9款一键生成论文工具测评&#xff1a;本科生毕业论文必备清单 2026年学术写作工具测评&#xff1a;为何需要这份清单&#xff1f; 随着高校论文要求日益严格&#xff0c;本科生在撰写毕业论文时面临诸多挑战&#xff0c;如选题构思困难、文献资料繁杂、格式规范不…

内网渗透-内网信息收集

内网信息收集 文章目录 内网信息收集前言msf模块中的信息收集msf反弹shell后的信息收集内网信息收集后记 前言 当我们进行外网信息收集&#xff0c;漏洞探测以及漏洞利用后&#xff0c;获得了主机的权限后&#xff0c;我们需要扩大渗透的战果时&#xff0c;这是我们就要进行…

耐达讯自动化Profibus光纤链路模块:跨行业通信的“隐形桥梁”,让控制更丝滑!

在现代工业自动化领域&#xff0c;无论是化工、电力、冶金还是制药&#xff0c;设备间的通信稳定性都是生产线的“生命线”。阀门定位器作为关键执行机构&#xff0c;其精准控制离不开可靠的通信协议支持。耐达讯自动化的Profibus光纤链路模块&#xff0c;凭借光纤技术突破传统…

BIO/NIO/AIO/Netty 知识点

I/O 的概念 I/O&#xff08;Input/Output&#xff09;指输入输出操作&#xff0c;是程序与外部设备&#xff08;如磁盘、网络、键盘等&#xff09;交互的过程。核心目标是实现数据的高效读写&#xff0c;分为磁盘 I/O、网络 I/O 等类型。同步 vs 异步、阻塞 vs 非阻塞 同步/异步…

【开题答辩全过程】以 基于BS结构的旅游网站的设计与实现为例,包含答辩的问题和答案

个人简介 一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等 开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。 感谢大家…

不止于抓取:2026年自适应夹爪品牌推荐

在智能制造迈向高柔性、高精度与高智能的2026年,自适应夹爪品牌正成为工业自动化升级的关键推手。随着3C电子、新能源、半导体等高端制造领域对微米级操作、零损伤抓取和快速换型需求的激增,传统气动夹爪已难以满足现…

2026必备!自考论文难题TOP8 AI论文网站测评

2026必备&#xff01;自考论文难题TOP8 AI论文网站测评 2026年自考论文写作工具测评&#xff1a;如何选择高效可靠的AI平台 随着自考人数的持续增长&#xff0c;论文写作已成为许多考生面临的重大挑战。面对选题困难、资料查找繁琐、格式规范不熟悉等问题&#xff0c;越来越多的…

考虑源-荷-储协同互动的主动配电网优化调度研究Matlab实现

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#…

强烈安利8个AI论文工具,MBA论文写作必备!

强烈安利8个AI论文工具&#xff0c;MBA论文写作必备&#xff01; AI 工具如何助力 MBA 论文写作&#xff1f; 在当前的学术环境中&#xff0c;MBA 学生面临着越来越高的论文写作要求。无论是研究选题、数据整理&#xff0c;还是内容撰写和格式规范&#xff0c;每一个环节都可…

揭秘人工智能在网络安全中的应用与挑战

人工智能在网络安全中的应用与挑战 随着数字威胁的日益复杂化&#xff0c;网络安全领域正在经历一场由人工智能驱动的变革。人工智能&#xff0c;特别是机器学习&#xff0c;通过分析海量数据集来识别模式和异常&#xff0c;为防御者提供了强大的新工具。 核心技术应用 威胁检测…

9款AI写论文哪个好?宏智树AI实测封神,毕业论文全流程开挂

作为深耕论文写作科普的博主&#xff0c;每年毕业季都被同学们追着问“AI写论文工具到底选哪个”。为了给出最客观的答案&#xff0c;我耗时一周实测了高校生高频使用的9款真实AI工具&#xff0c;从学术合规性、功能完整性、成果适配度三大核心维度逐一打分。最终结果一目了然&…

写论文软件哪个好?宏智树 AI 凭 “真科研” 实力领跑学术写作赛道

毕业季的深夜&#xff0c;你是否也曾对着空白文档陷入迷茫&#xff1f;选题没方向、文献似乱麻、数据分析无头绪、查重降 AIGC 双重压力压得人喘不过气&#xff1f;作为深耕论文写作科普的教育测评博主&#xff0c;我实测十余款论文工具后发现&#xff0c;宏智树 AI&#xff08…

宏智树AI:ChatGPT学术版驱动,重塑学术写作新生态

在学术研究的赛道上&#xff0c;低效的文献梳理、繁琐的数据处理、严苛的学术规范&#xff0c;常让科研工作者与高校师生陷入创作困境。宏智树AI&#xff08;官网&#xff1a;www.hzsxueshu.com&#xff09;&#xff0c;一款由ChatGPT学术版模型深度驱动、搭载AI5.0技术架构的专…

620-0085输入输出控制模块

620-0085 输入/输出控制模块&#xff08;I/O Control Module&#xff09;620-0085 是一款工业自动化系统中使用的 输入/输出控制模块&#xff0c;主要用于控制系统内部处理单元与现场 I/O 子系统之间的信号管理与调度&#xff0c;常见于老款或经典的分布式控制系统平台中。主要…

宏智树 AI:破解降重去 AIGC 双重难题,让论文回归学术本真

作为深耕论文写作科普的教育博主&#xff0c;后台每天都被两类求助刷屏&#xff1a;“查重率改到崩溃&#xff0c;越改语句越不通顺”“用 AI 写的初稿&#xff0c;导师一眼看出机器痕迹”。在学术检测技术全面升级的今天&#xff0c;论文合规早已不是 “降重就行”&#xff0c…

620-0086链路驱动器模块

620-0086 链路驱动器模块&#xff08;Link Driver Module&#xff09;620-0086 是一种用于工业自动化控制系统中的 链路驱动器模块。它的主要作用是在控制系统内部建立并维持通信链路&#xff0c;使控制中心与分布式 I/O 子系统之间的数据交换能够稳定可靠地进行。主要功能驱动…

Jenkinsfile编写全解析:从语法逻辑到团队协作,音视频项目自动化落地实践

在音视频开发领域&#xff0c;自动化构建部署是保障项目高效迭代的核心基础设施——无论是FFmpeg编解码模块的编译优化、Nginx-RTMP直播服务的部署升级&#xff0c;还是播放器SDK的打包发布&#xff0c;都需要一套稳定、可复用的自动化流程。Jenkinsfile作为Jenkins Pipeline的…