Unet++(pytorch實現(xiàn))

向AI轉型的程序員都關注了這個號??????
Unet++網絡
Dense connection
Unet++繼承了Unet的結構,同時又借鑒了DenseNet的稠密連接方式(圖1中各種分支)。

作者通過各層之間的稠密連接,互相連接起來,就像Denset那樣,前前后后每一個模塊互相作用,每一個模塊都能看到彼此,那對彼此互相熟悉,分割效果自然就會變好。
在實際分割中,一次次的下采樣自然會丟掉一些細節(jié)特征,在Unet中是使用skip connection來恢復這些細節(jié),但能否做的更好呢?Unet++就給出了答案,這種稠密連接的方式,每一層都盡量多的保存這種細節(jié)信息和全局信息,一層層之間架起橋梁互相溝通,最后共享給最后一層,實現(xiàn)全局信息和局部信息的保留和重構。
deep supervision
當然,簡單的將各個模塊連接起來是會實現(xiàn)很好的效果。而我們又能發(fā)現(xiàn),一個Unet++其實是很多個不同深度的Unet++疊加。那么,每一個深度的Unet++是不是就都可以輸出一個loss?答案自然是可以的。
所以,作者提出了deep supervision,也就是監(jiān)督每一個深度的Unet++的輸出,通過一定的方式來疊加Loss(比如加權的方式),這樣就得到了一個經由1、2、3、4層的Unet++的加權Loss(圖2 不同深度Unet++融合)。

那么,deep supervision又有什么用呢?-剪枝
既然Unet++由多個不同深度的Unet++疊加起來,那么隨意去掉一層,前向傳播的梯度不會受到任何變化,但你發(fā)現(xiàn)Unet++第三個輸出的效果和第四個輸出效果差不多時,那就可以毫不猶豫刪去4層深度的Unet++。比如,直接刪去圖3中棕色部分,就可以實現(xiàn)剪枝。這樣,就得到了更加輕量化的網絡。

模型復現(xiàn)
Unet++
為了更直觀一些,我把代碼中的所有符號都和網絡結構中對應上了。








數(shù)據(jù)集準備
數(shù)據(jù)集使用Camvid數(shù)據(jù)集,可在CamVid數(shù)據(jù)集的創(chuàng)建和使用-pytorch中參考構建方法。
https://blog.csdn.net/yumaomi/article/details/124786867








訓練結果

原文地址
https://blog.csdn.net/yumaomi/article/details/124823392
機器學習算法AI大數(shù)據(jù)技術
搜索公眾號添加: datanlp
長按圖片,識別二維碼
閱讀過本文的人還看了以下文章:
基于40萬表格數(shù)據(jù)集TableBank,用MaskRCNN做表格檢測
《深度學習入門:基于Python的理論與實現(xiàn)》高清中文PDF+源碼
python就業(yè)班學習視頻,從入門到實戰(zhàn)項目
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基于TensorFlow的實踐詳解》完整版PDF+附書代碼
PyTorch深度學習快速實戰(zhàn)入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數(shù)據(jù)分析與挖掘實戰(zhàn)》PDF+完整源碼
汽車行業(yè)完整知識圖譜項目實戰(zhàn)視頻(全23課)
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計學習方法》最新資源全套!
重要開源!CNN-RNN-CTC 實現(xiàn)手寫漢字識別
【Keras】完整實現(xiàn)‘交通標志’分類、‘票據(jù)’分類兩個項目,讓你掌握深度學習圖像分類
VGG16遷移學習,實現(xiàn)醫(yī)學圖像識別分類工程項目
特征工程(二) :文本數(shù)據(jù)的展開、過濾和分塊
如何利用全新的決策樹集成級聯(lián)結構gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特征工程
不斷更新資源
深度學習、機器學習、數(shù)據(jù)分析、python
搜索公眾號添加: datayx
