hyper-net、ion、skip connection、fpn

resnet的skip connection用的也是eltwise相加

fpn的浅层和高层融合用的eltwise相加

hyper-net和ion都是使用的concat的方式

 

 

 

hyper-net网络结构

https://blog.csdn.net/qq_35608277/article/details/80432907

LRN是必要的,因为不同层的feature resolution 不同,如果不做正则norm大的feature会压制住norm小的feature

但pavenet里面没有用lrn,而是concat之后用了一个1*1的卷积作缓冲处理,保证不同channel差异不是太大

 

ion-net:

总结:两个都是浅层细节信息和高层语义信息concat融合,但Hyper-net是把最后一层feature map进行concat,ion是在不同层pooling然后concat,两者其实差异性不大。两者都是在stage最后一层做的操作。

 

自己做的实验:1.ion-net我没加scale层是出现了梯度爆炸(到底自己用了conv1*1没,自己忘了),去确定一下自己在concat之后是否加了bn,个人感觉bn其实可以替代scale

       2.hyper-net这个上下层连接自己做过stage4和stage3的,性能提升:

            也做过stage2和stage3和stage4的,性能提升:

         3.马:多层concat,a层的数量级可能和b层的不一样,会压制住别的层的feature map。比如a层可能在10-100,b层的值可能在0.1到1,concat之后合成一个feature map,虽然在不同通道,但某些通道的值很大,会对最终的结果影响比较大

          理论上浅层是提取一些物体的一般特性,颜色、纹理、形状等

          他做了在不同层进行roi-pooling看不同层的效果,比如在stage3能检测的一些东西,stage4检测不到,这样其实就可以发现stage3的信息是有用的

          如果浅层和深层的信息都学的比较好,那再不同层做pooling然后concat的性能可能没有直接把浅层和深层feature map concat起来pooling效果好

          concat > 深层 > 浅层

          

concat效果好,会不会仅仅是由于增加了数据输入的原因?可以做个试验验证,把最后一层的channel提到和concat的一样,然后再对比

 

个人感觉如果是concat,由于两个部分的channel来自于不同的stage,数据分布会不一样(但会不会因为bn层在前面用了,所以整个网络的数据分布是一样的?),或者说可能本身一个部分的channel值大,一个部分的channel值小,导致值大的做主导?需要做一个实验,就是加bn和不加bn看性能上是否有提升,我之前做的好像就没有用bn

把ion concat之后加bn看是否还会发生梯度爆炸?

 eltiwise和concate效果差不多?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值