【深度学习】Unet++(pytorch实现)

向AI转型的程序员都关注了这个号

Unet++网络

Dense connection

Unet++继承了Unet的结构,同时又借鉴了DenseNet的稠密连接方式(图1中各种分支)。


作者通过各层之间的稠密连接,互相连接起来,就像Denset那样,前前后后每一个模块互相作用,每一个模块都能看到彼此,那对彼此互相熟悉,分割效果自然就会变好。

在实际分割中,一次次的下采样自然会丢掉一些细节特征,在Unet中是使用skip connection来恢复这些细节,但能否做的更好呢?Unet++就给出了答案,这种稠密连接的方式,每一层都尽量多的保存这种细节信息和全局信息,一层层之间架起桥梁互相沟通,最后共享给最后一层,实现全局信息和局部信息的保留和重构。 

deep supervision

当然,简单的将各个模块连接起来是会实现很好的效果。而我们又能发现,一个Unet++其实是很多个不同深度的Unet++叠加。那么,每一个深度的Unet++是不是就都可以输出一个loss?答案自然是可以的。

所以,作者提出了deep supervision,也就是监督每一个深度的Unet++的输出,通过一定的方式来叠加Loss(比如加权的方式),这样就得到了一个经由1、2、3、4层的Unet++的加权Loss(图2 不同深度Unet++融合)。


那么,deep supervision又有什么用呢?-剪枝

既然Unet++由多个不同深度的Unet++叠加起来,那么随意去掉一层,前向传播的梯度不会受到任何变化,但你发现Unet++第三个输出的效果和第四个输出效果差不多时,那就可以毫不犹豫删去4层深度的Unet++。比如,直接删去图3中棕色部分,就可以实现剪枝。这样,就得到了更加轻量化的网络。

模型复现

Unet++

为了更直观一些,我把代码中的所有符号都和网络结构中对应上了。


数据集准备

数据集使用Camvid数据集,可在CamVid数据集的创建和使用-pytorch中参考构建方法。

https://blog.csdn.net/yumaomi/article/details/124786867

训练结果


原文地址

https://blog.csdn.net/yumaomi/article/details/124823392

往期精彩回顾



  • 交流群

欢迎加入机器学习爱好者微信群一起和同行交流,目前有机器学习交流群、博士群、博士申报交流、CV、NLP等微信群,请扫描下面的微信号加群,备注:”昵称-学校/公司-研究方向“,例如:”张小明-浙大-CV“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~(也可以加入机器学习交流qq群772479961


相关推荐

  • 【深度学习】目标检测的常用数据处理方法!
  • 手机可以跑大模型了,一夜下载量超2000
  • 开源go实现的IOT物联网新基建平台
  • 11.8K Star开源了!从此DevOps有了新选择
  • 我为什么使用 Linux 做开发?
  • 重磅:2024 年 QS 世界大学学科排名出炉!
  • 外包巨头大规模裁员,砍掉 22063 人!
  • 王慧文,投了个中国版Character.AI
  • 搭建完美的技术写作环境,第1-8章
  • 太神了!首位 AI 程序员上线,居然可以修复自己写的bug
  • 原子化状态管理库 Jotai,它和 Zustand 有啥区别?
  • 剑指Sora!120秒超长AI视频模型免费开玩
  • Science Robotics封面!DeepMind强化学习打造超一流机器人球员
  • 奥特曼爆火AI硬件遭差评,ChatGPT版iPhone上市即翻车!
  • 昆仑万维董事长兼CEO方汉:从SkyMusic音乐大模型谈SOTA红利丨 GenAICon 2024
  • 马斯克发布Grok-1.5V!xAI首款多模态大模型,能看图写代码、算热量
  • 解构全场景AI赋能,看智慧PC如何更懂用户
  • 号外号外!ClickHouse企业版正式商业化啦!
  • ChatBI:基于文心一言的生成式数据分析技术探索
  • 今日arXiv最热大模型论文:清华大学发布,ChatGML又添新功能,集成“自我批评”,提升数学能力