| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深监督,辅助损失,auxiliary loss -> 正文阅读 |
|
[人工智能]深监督,辅助损失,auxiliary loss |
今天看到了在PSPNet文章中使用了深监督即辅助损失,特此来记录一下。 辅助损失由Deeply-Supervised Nets提出的,经过Training Deeper Convolutional Networks with Deep Supervision改良。 在PSPnet中,在Resnet的stage3最后一层的卷积处使用了辅助损失,是为了解决反向传播不能传递到浅层,加了辅助损失,两个损失都可以传递到之前的层,辅助损失优化了学习过程,主分支损失承担了主要的责任,且对辅助损失加了一个权重。 在训练过程中我们使用辅助损失,在测试阶段我们不使用辅助损失,使用经过辅助损失优化好的网络。 ?那么辅助损失是如何实现的呢?pytorch代码实现 在PSPnet网络定义的类中定义了辅助损失:
根据代码我们可以看到,辅助损失由两个卷积构成,第一个卷积的输入就是resnet第三层卷积的输入为1024,然后辅助损失再经过一个输出为class的卷积。也就是说和主干网络的输出一样。 ?看完定义后看如何使用: 在网络的forward函数中,对经过第四层的卷积输出,输入进辅助损失函数中,得到输出再经过上采样到原始图片大小,接着进行两个损失计算,输出x与原始标签计算主损失,辅助损失输出与原始标签计算辅助损失。最后我们PSPnet得到输出x,主损失,辅助损失。
在train.py中,我们实例化model=PSPnet,将输入和标签输送进model中,总损失就是主损失加辅助损失乘以权重。然后进行梯度反向传播。
在验证中不使用辅助损失:
辅助损失的效果: 辅助损失要乘以一个权重,那么这个权重为多少合适,对辅助损失的消融实验: 在0-1之间尝试,发现0.4效果最好。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:17:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |