zoukankan      html  css  js  c++  java
  • 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效果差不多?

  • 相关阅读:
    【DUBBO】dubbo架构详解(转载)
    【数据库】sql连表查询
    第十三章 三种非对称加密算法总结
    第十二章 非对称加密算法-RSA
    第十一章 非对称加密算法--DH
    第十章 五种对称加密算法总结
    第九章 对称加密算法--IDEA
    第八章 对称加密算法--AES
    第七章 对称加密算法--DES
    第六章 三大消息摘要算法总结
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/9292108.html
Copyright © 2011-2022 走看看