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

相关推荐

  • 这是雷军的简历,落魄时卡里只有冰冷的40亿...
  • 分布式事务场景、概念和方案整理
  • 40K+Star的开源免费美化命令行工具
  • 2024年,值得关注的十个赚钱赛道
  • 奇舞周刊第525期:TypeScript很麻烦,不想使用!
  • 也许是史上最强书单!通识千书:来自 420 位智者的 1000+本代表作
  • 新版GPT-4Turbo向付费用户开放,福布斯发布2024年人工智能初创企业50强
  • 改变LoRA的初始化方式,北大新方法PiSSA显著提升微调效果
  • 直接扩展到无限长,谷歌Infini-Transformer终结上下文长度之争
  • OpenAI解雇两名Ilya团队成员,与「宫斗」泄密有关?
  • 中文OCR超越GPT-4V,参数量仅2B,面壁小钢炮拿出了第二弹
  • 企业级AI Agent如何落地汽车行业,这是国内首份系统阐述白皮书
  • NLPCC 2024“大语言模型监管”评测任务发布,诚邀各界专家学者参与
  • 博士申请 | 香港科技大学(广州)汤南教授招收数据科学方向全奖博士生
  • 业界首个!厦大北大联合深势科技发布XtalNet,从PXRD实验数据直接预测晶体结构
  • NUS、NTU等联合提出Dysen-VDM,利用LLM协助增强视频扩散模型的时间动态感知能力
  • 魔改RNN挑战Transformer,RWKV上新:推出2种新架构模型
  • 突发!OpenAI开除Ilya盟友,理由:涉嫌信息泄漏
  • 谷歌爆改Transformer,“无限注意力”让1B小模型读完10部小说,114倍信息压缩
  • GPT-4升级被曝引入Q*,推理/数学更强废话更少,竞技场重夺王位