减少代码冗余: 封装成 函数/类
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



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


1078

被折叠的 条评论
为什么被折叠?



