深度学习 残差块

目录

恒等残差块——The identity block

卷积残差块——The convolutional block


 

  • 恒等残差块——The identity block

 The identity block是ResNets中使用的标准块,对应于输入激活(例如 a [1])与输出激活具有相同维度(例如a [l +2])。

(1)、两层恒等残差块

下图展示了ResNets的两层的恒等残差块 identity block:

上面的路径是“shortcut path”,下面的路径是“main path”,在这个图中,同样也进行了CONV2D和ReLU操作,为了加速训练的速度也加入了Batch正则化“Batch Norm”,Batch Norm在Keras框架中就一句代码。

(2)、三层恒等残差块

在下面的这个例子中,将实际上实现一个略微更强大的版本,这个跳转连接“跳过”3个隐藏层而不是2层。

(3)、下面是细节的步骤:

a、主路径的第一部分:

第一个CONV2D的过滤器F1大小是(1*1),步长s大小为(1*1),卷积填充padding="valid"即无填充卷积。

将这一部分命名为conv_name_base+'2a',初始化时利用种子为seed=0。

第一个BatchNorm是在通道/厚度的轴上进行标准化,并命名为bn_name_base+'2a'.

应用ReLU激活函数,这里没有超参数。

b、主路径的第二部分:

第二个CONV2D的过滤器F2大小是(f*f),步长s大小为(1*1),卷积填充padding="same"即相同卷积。

将这一部分命名为conv_name_base'2b',初始化时利用种子为seed=0。

第二个BatchNorm是在通道/厚度的轴上进行标准化,并命名为bn_name_base+'2b'.

应用ReLU激活函数,这里没有超参数。

c、主路径的第三部分:

 

第三个CONV2D的过滤器F3大小是(1*1),步长s大小为(1*1),卷积填充padding="valid"即无填充卷积。

将这一部分命名为conv_name_base+'2c',初始化时利用种子为seed=0。

第三个BatchNorm是在通道/厚度的轴上进行标准化,并命名为bn_name_base +'2c'.

这一部分中没有应用ReLU激活函数。

d、最后部分:

将shortcut和输入一起添加到模块中,然后再应用ReLU激活函数,这里没有超参数。

 

 

  • 卷积残差块——The convolutional block

(1)、综述

ResNet的convolutional_block是另一种类型的残差块,当输入和输出尺寸不匹配时,可以使用这种类型的块。

与identity block恒等残差块不同的地方是:在shortcut路径中是一个CONV2D的层。

shortcut路径中的CONV2D层用于将输入x调整为不同的尺寸,以便在添加shortcut残差块的值返回到主路径时需要最后添加的尺寸相匹配(与矩阵Ws的作用相同)。例如,要将激活值维度的高度和宽度缩小2倍,可以使用步长为2的1x1卷积。shortcut路径上的CONV2D层路径不使用任何非线性激活函数。 它的主要作用是只应用一个(学习的)线性函数来减小输入的尺寸,使得尺寸匹配后面的添加步骤。

(2)、convolutional_block的细节步骤

a、主路径第一部分

第一个CONV2D的过滤器F1大小是(1*1),步长s大小为(s*s),卷积填充padding="valid"即无填充卷积。

将这一部分命名为conv_name_base+'2a'。

第一个BatchNorm是在通道/厚度的轴上进行标准化,并命名为bn_name_base+'2a'.

应用ReLU激活函数,这里没有超参数。

b、主路径第二部分

第二个CONV2D的过滤器F2大小是(f*f),步长s大小为(1*1),卷积填充padding="same"即相同卷积。

将这一部分命名为conv_name_base+'2b',初始化时利用种子为seed=0。

第二个BatchNorm是在通道/厚度的轴上进行标准化,并命名为bn_name_base+'2b'.

 应用ReLU激活函数,这里没有超参数。

c、主路径第三部分

第三个CONV2D的过滤器 F3大小是(1*1),步长s大小为(1*1),卷积填充padding="valid"即无填充卷积。

将这一部分命名为 conv_name_base+'2c',初始化时利用种子为seed=0。

第三个BatchNorm是在通道/厚度的轴上进行标准化,并命名为bn_name_base+'2c'.

这一部分中没有应用ReLU激活函数。

d、shortcut 路径

该部分CONV2D的过滤器 F3大小是(1*1),步长s大小为(s*s),卷积填充 padding="valid"即无填充卷积。

将这一部分命名为conv_name_base+'1'。

该部分BatchNorm是在通道/厚度的轴上进行标准化,并命名为bn_name_base+'1' 

e、最后部分

将shortcut和输入一起添加到模块中,然后再应用ReLU激活函数,这里没有超参数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值