项目相关被问到的

Resnet-50

Motivation:

深层次的网络往往能够提取到更丰富的特征,但是随着网络层数的加深会出现
网络退化的现象,也就是随着网络的加深性能变弱了。
Resnet50在网络层间加shutcut connection,实际网络学习的目标是一个残差项。如果当前网络已经达到最优,不需要再加深,那么接下来网络层的residual mapping部分会被push为0,只有identity mapping向下原封不动的传递上层网络的信息。如果当前网络还需要加深,那么接下来网络层residual mapping 部分继续学习层之间的参差项。

实现方式

传统网络输出到下一层的是F(X),那么resnet输出到下一层的是 F(x)+x,这里的F(x)就是指的residual mapping,而x是指identity mapping。对于residual mapping,v1的实现方式是以weight-bn-relu-weight-bn 加identity relu, v2的实现方式是bn-relu-weight-bn-relu-weight 加identity,是为了保证identiy mapping的分布一致性。

resnet-50 结构

分为5个stage,stage1由普通的conv 和maxpooling组成,对特征做一个初步提取,剩下的4个stage,每个stage 由1个下采样块和2个bottleneck block 也就是残差块组成。
bottleneck block名字中含有bottleneck 是因为这个block的residual mapping 分支在3x3conv的前后分别通过1x1 conv 来缩减、复原通道数,加入1x1conv之后减小了参数量和计算量。identity mapping分支直接该block的输入。
下采样块在残差块的基础上要处理随着stage深入减小feature map和通道对齐问题。stage3-5通过将residual 分支和identity 分支的第一个conv的stride设为2,来缩小feature map。stage 2-5通过在identity 分支加入1x1conv层,帮助完成通道扩张前后identity 分支 和residual 分支通道数的统一。通过设置第一个conv的stride=2实现feature map 的缩小。
在这里插入图片描述

Cross entropy loss

对输出过一个softmax函数算出样本属于各类的概率,然后最小化估计的概率分布和实际样本分布之间的交叉熵。

BN层训练、测试区别

在训练阶段,running_mean和running_var在每次前向时更新一次;在测试阶段,则通过net.eval()固定该BN层的running_mean和running_var,此时这两个值即为训练阶段最后一次前向时确定的值,并在整个测试阶段保持不变。

pytorch train() eval()

train() 训练阶段,打开dropout 和BN
eval() 测试阶段,关闭dropout、BN

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值