在这篇博客中,我将讨论Vanilla(基本/简单)UNET架构与采用EfficientNetB0作为编码器的UNET的性能。
最近,我参加了一个Kaggle竞赛,在那次竞赛中,使用EfficientNet架构提交的作品数量最多。我惊讶地发现,我浏览的几乎所有深渊翻滚都实现了EfficientNet模型。然后,后来我遇到了EfficientDet,这是一个以EfficientNet架构为主干的对象检测架构!所以我想,为什么不把它作为UNET的主干架构来试用呢?
要了解EfficientNet,您可以参考此链接,对于EfficientDet,请参阅此链接。link link
要了解采用EfficientNetB0作为编码器架构的UNET,请单击此处。here
Vanilla UNET与采用EfficientNetB0作为编码器的UNET的比较
因此,在我执行的实验中,我训练了两个模型,一个使用简单的UNET架构,另一个使用EfficientNetB0作为UNET架构中的编码器。我使用的数据集是来自Kaggle的“人员分段”。Person Segmentation
这两位模特都在谷歌可乐上接受了20个时代的培训。那么,为什么是20个纪元呢?答案是我在EfficientNetB0-UNET上执行迁移学习,所以它在20个时期获得了相当好的值(在特定的性能指标上)。由于本博客对两种架构进行了比较,因此都应该在相同的纪元数上进行训练。研究结果如下。
损失值(培训损失和验证损失)
召回价值
精确值
推理
在Google Colab上对这两个模型进行了培训后,我在本地机器上对它们进行了测试。结果如下:
原图:-
输出:-
从上面的推论可以看出,与香草UNET相比,采用EfficientNetB0作为编码器的UNET具有更好的输出。我认为玩弄UNET的编码器部分,比如说,使用EfficientNetB1或B2可能会产生更好的模型。
在我的下一篇博客中,我将比较EfficientNetB0和B7作为UNET编码器的性能。
在LinkedIn上与我联系:-D。感谢您阅读我的博客!LinkedIn
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/06/24/vanilla-unet%e4%b8%8e%e9%87%87%e7%94%a8efficientnetb0%e4%bd%9c%e4%b8%ba%e7%bc%96%e7%a0%81%e5%99%a8%e7%9a%84unet%e7%9a%84%e6%af%94%e8%be%83/