pytorch笔记---CNN(高级)

博客围绕GoogleNet和残差块展开。介绍了GoogleNet中Inception Model,将多种尺寸卷积核作为候选,经卷积后保证除通道数外其他维度一致。还阐述了残差块能解决梯度消失问题,要求数据形状一致,不同形状需统一操作,并提及残差块不同实现形式。

减少代码冗余: 封装成 函数/类

GoogleNet

将Inception Model单独拿出来看

因为它不知道哪种尺寸的卷积核的效果比较好,所以它将各种尺寸的卷积核都包含在内,作为候选。将来哪种尺寸的卷积核效果好的话,它的权重就会比价大。

经过每种尺寸的卷积核后,应保证除了C不一样外,其他维度一致。尤其是W,H

1×1的conv  可以跨越不同通道相同位置的值  就是为了改变通道数(卷积后的某位置上的值是相同位置上值信息融合的结果)network in network

各分支代码实现

 沿着通道拼接到一起

完整代码

 

残差块 Residual Net的作用

残差块能解决梯度消失的问题。因为如果原始梯度(导F/导x)很小,则求得的梯度会在1的附近。这样离输入比较近的层的参数就可以得到很好的训练。

residual block要求F(x)之后的数据的C,W,H必须和原始输入x的C,W,H一样。张量Tensor的shape要保持一致才行。

虚线的跳连接是因为紫色和绿色Tensor的shape不一样,输入x和F(x)的shape不一样,需要进行某种统一操作,将两个的Tensor变一致。有可能是F(x)去迁就x变化,也有可能x迁就F(x)变化。


举个例子来实现residual block

增量式开发的思想来写程序

residual block 不同的实现/设计形式

底下那篇论文里有

DenseNet

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值