前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Resnet网络结构图和对应参数表的简单理解

Resnet网络结构图和对应参数表的简单理解

作者头像
卡伊德
发布2022-09-13 15:09:00
2.1K0
发布2022-09-13 15:09:00
举报
文章被收录于专栏:caidblog

Resnet

Resnet即就是残差网络,本文主要是对于resnet给出的网络结构图进行简单解释。

网络结构图

以上就是34层网络的网络结构图。

以上是18层、34层、50层、101层以及152层网络所对应的残差块。

我刚开始在网上看到这两张图片的时候,感觉一点都不懂,后面学了一下,稍微懂了,所以写下这篇博文做个记录。

个人理解

比如说第一张34层的网络结构图,它对应的是第二张图片的第四列。

在第四列中,每一行的大概解释如下:

第二行表示,从18层到152层的conv1都使用了64个7*7的卷积核,

第三行表示的是从18层到152层的conv2_x第一步也都使用了3*3的卷积核进行池化。

第四行表示con2_x的第二步执行了 3个残差块,每个残差块包含两步操作:使用64个3*3的卷积核,进行卷积,执行两次。而最终的结果shape为[56*56*64]

同样的,第五行(conv3_x)表示的是4个残差块,每个残差快包含两次相同的卷积:使用128个大小为3*3的卷积核进行卷积。

第六行、第七行类似前面。

第八行为均值池化,从而得到一个1000d的结果,在经过全连接层以及softmax激活函数得到 1*1的输出。

虚线和直线的区别

在第一张图中有些是虚线,而有些是直线,区别大概有一下几点:

简单来说就是,一个残差块对应的输入shape和输出shape相同,则用实现,否则用虚线。如果输入和输出的shape相同,则在计算的过程中可以直接将输入数据和输出结果相加,我们截取其中一个残差块:

在此图中,输入数据的shape为:[56 * 56* 64],而输出数据为:[28*28*64]

在此图中,输入数据的shape为:[56 * 56* 64],而输出数据为:[28*28*128],因此,需要将虚线的输出结果输入到前面实现的残差块中,才能最终得到和输入数据相同的shape,从而将输入和输出相加。

在上图中,主分支的stride为2,即可让输入的长宽为[56 * 56* 64]变为[28*28*128],而捷径分支(右侧)的stride为2,也可让输入的长宽为[56 * 56* 64]变为[28*28*128],从而保证主分支执行完两次卷积后再与捷径分支进行相加操作。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Resnet
    • 网络结构图
      • 个人理解
        • 虚线和直线的区别
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档