Inception V4

1、目的

        受显存限制,旧版的Inception模型必须被拆分成sub-network进行训练;为了加速训练,在进行网络设计时就需要平衡不同sub-network之间的计算量,从而限制了网络设计的灵活性。

        TensorFlow的出现,优化了梯度回传过程,使得显存占用量大大减少,无须将网络拆分训练。因此作者开始考虑performance更优的网络设计。

2、网络结构

    1)stem (左:Inception-v4和Inception-ResNet-v2,右:Inception-ResNet-v1)

        

    2)Inception A(35 x 35) / B(17 x 17) / C(8 x 8)模块

    3)Reduction-A模块(35 -> 17)

        

3、Inception V4

    网络表现与Inception-ResNet-v2相同

    1)网络结构

    2)Inception A - B - C模块

        

    3)Reduction-B模块(17-> 8)

4、Residual Inception

    1)在Inception block后添加filter-expansion层(conv 1 x 1,不用非线性激活层,用于使filter bank的输出尺寸与identity一致,从而便于addition操作)

    2)不在summation操作后使用BN。大的激活层参数会显著增加内存占用,不用BN可以方便增加更多的Inception模块

    3)Inception模块中不使用pooling层

    4)网络结构

    5)残差scaling

    当channel数超过1000时,残差变量开始不稳定,训练早期网络就会“died”,经过几千个iteration之后,avg pooling前的网络输出就都变成了0。通过降低lr和增加BN层无法解决该问题;当channel数非常大时,即便用warm-up也很难训练。

    残差scaling在不必要的时候,也不会影响最终的accuracy,但可以帮助训练过程更加稳定。

    

    4.1 Inception-ResNet-v1

        计算量与Inception-v3相似

    1)Inception A - B - C模块

        

    2)Reduction-B模块(17-> 8)

    4.2 Inception-ResNet-v2

        计算量与Inception-v4相似,但训练速度比inception-v4快

        1)Inception A - B - C模块

        

    2)Reduction-B模块(17-> 8)

5、结论

    1)不使用残差结构也能训出相对较深的网络,但残差结构能极大的加速训练

    2)一些证据表明,带残差结构的Inception网络略优于相似计算量下的Inception网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值