residuel network

网络的架构图如下:
这里写图片描述

一个block由两个卷积层组成,将输出通道数相同的字block层叠在一起组成middle block,然后将不同output channel的middle block层叠在一起组成整个网络。
block分两种:

  1. middle block里的第一个block;
  2. middle block里的其他block

1. middle block里的第一个block;

因为不同的middle block具有不同的输出通道数(一般后者是前者的一倍),所以后一个middle block的第一个block需要对前一个middle block的output做通道加倍.
代码里假如第一个middle block的输出为:32×32,channl=16;想要第二个middle block的输出channel为32,可以按如下方法设置参数
1、第一个卷积层参数为:
kernel=3×3, strder=2,output_channel=32, padding=SAME;
卷积后的结果为: 16×16,output_channel=32.

2、第二个卷积层参数为:
kernel=3×3, strder=1,output_channel=32, padding=SAME;
卷积后的结果为: 16×16,output_channel=32.

接下来就是将第二个卷积结果加上input,然而

  • input的shape是:32×32,channl=16
  • 第二个卷积结果的shape为:16×16,output_channel=32

所以需要对input做降维变化(叫做shortcut),使用的也是一个卷积层,参数为:
kernel=1×1, strder=2,output_channel=32, padding=SAME; 结果shape为
16×16,output_channel=32。然后两者就可以相加了。

2. middle block里的其他block

第一个block的输出不需要做维度变化,直接输入到第二个block,第二个block的两个卷积层参数分别为
1、第一个卷积层参数为:
kernel=3×3, strder=1,output_channel=32, padding=SAME;
卷积后的结果为: 16×16,output_channel=32.

2、第二个卷积层参数为:
kernel=3×3, strder=1,output_channel=32, padding=SAME;
卷积后的结果为: 16×16,output_channel=32.
input可以直接加上第二个卷积层的结果,得到第二个block的输出16×16,output_channel=32.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiqingyang2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值