作者本人解读U-Net++,Python插件化主流框架和实现原理

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
摘要由CSDN通过智能技术生成

那么接下来是关键,我们心中的目标很明确了,就是使用浅层和深层的特征!但是总不能训练这些个U-Net吧,未免也太多了。好,这里可以暂停一下,想一想,要你来,你怎么来利用这些不同深度的,各自能抓取不同层次的特征的U-Net。

在这里插入图片描述

我把图打出来就很简单了。

在这里插入图片描述

我们来看一看,这样是不是把1~4层的U-Net全给连一起了。我们来看它们的子集,包含1层U-Net,2层U-Net,以此类推。这个结构的好处就是我不管你哪个深度的特征有效,我干脆都给你用上,让网络自己去学习不同深度的特征的重要性。第二个好处是它共享了一个特征提取器,也就是你不需要训练一堆U-Net,而是只训练一个encoder,它的不同层次的特征由不同的decoder路径来还原。这个encoder依旧可以灵活的用各种不同的backbone来代替。

可惜的是,这个网络结构是不能被训练的,原因在于,不会由任何梯度会经过这个红色区域,因为它和算loss function的地方是在反向传播时是断开的。我停顿一下,大家想一想是不是这么回事。

在这里插入图片描述

请问,如果是你,如何去解决这个问题?

其实既然已经把结构盘成这样了,还是很自然能想到的吧,我这里提供有两个候选的解决方案。

第一个是用deep supervision,强行加梯度是吧,关于这个,我待会儿展开来说。

第二个解决方案是把结构改成这样子:

在这里插入图片描述

如果没有我上面说的那一堆话来盘逻辑,这个结构可能不那么容易想到,但是如果顺着思路一步一步的走,这个结构虽然不能说是显而易见,也算是顺理成章的。我的故事还没有讲完,但是我提一句,这个结构由UC Berkeley的团队提出,发表在今年的CVPR上,是一个oral的论文,题目是"Deep Layer Aggregation"。

可能就有小伙伴惊呆了,就这样吗,就发了CVPR!?是,也不是。。。这只是他们在论文中给出的关于分割网络结构的改进,他们还做了其他的工作,包括分类,和边缘检测。但是主要的思路就是刚刚盘的那些,目标就是取整合各个不同层次的特征。

这只是一个题外话哦,我们继续来看这个结构,请问,你觉得有什么问题?

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值