博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ResNet-50网络理解
阅读量:2055 次
发布时间:2019-04-28

本文共 894 字,大约阅读时间需要 2 分钟。

本文主要针对ResNet-50对深度残差网络进行一个理解和分析

ResNet已经被广泛运用于各种特征提取应用中,当深度学习网络层数越深时,理论上表达能力会更强,但是CNN网络达到一定的深度后,再加深,分类性能不会提高,而是会导致网络收敛更缓慢,准确率也随着降低,即使把数据集增大,解决过拟合的问题,分类性能和准确度也不会提高。Kaiming大神等人发现残差网络能够解决这一问题。这里首先放上一张ResNet的各种网络结构图(图1):
在这里插入图片描述
重点说明一下ResNet-50,可以看到图1中所示,ResNet-50经过了4个Block,每一个Block中分别有3,4,6,3个Bottleneck,这里给出了一张自己制作的网络图,我觉得这张图足够解释清楚ResNet-50(图2):
在这里插入图片描述
现在来看一下这个网络图,

  1. 首先输入的图片是3×224×224,也就是3个通道,图片尺寸为224×224;
  2. 进入第一个卷积层,卷积核大小为7*7,卷积核个数为64,步长为2,padding为3;所以输出应该是(224-7+2×3)/2+1=112.5,向下取整得到112,所以输出是 64 ×112 ×112;
  3. maxpool层会改变维度,但是不会影响个数

到此即将进入第一个实线方框中,图1中结构所示,第一个实线方框中本来应该有3个Bottleneck,图2作者只画出两个,其实每一个Bottleneck里面包含两种Block,第一种是Conv Block,一种是Identity Block。

首先说说Conv Block,也就是第一个实线方框中虚线连接的三层:
在这里插入图片描述
可以看到,总体的思路是先通过1×1的卷积对特征图像进行降维,做一次3×3的卷积操作,最后再通过1×1卷积恢复维度,后面跟着BN和ReLU层;虚线处用256个1×1的卷积网络,将maxpool的输出降维到255×56×56。
再说Identity Block
在这里插入图片描述
也就是实线连接所示,不经过卷积网络降维,直接将输入加到最后的1×1卷积输出上。

经过后面的Block,经过平均池化和全连接,用softmax实现回归。

对卷积、特征图、通道等理解可以参考:

转载地址:http://jhdlf.baihongyu.com/

你可能感兴趣的文章
Docker 大势已去,Podman 万岁
查看>>
Podman 使用指南
查看>>
国内 2018 年 12 月 XX 站访问百强榜单
查看>>
Linux Capabilities 入门教程:概念篇
查看>>
Linux Capabilities 入门:让普通进程获得 root 的洪荒之力
查看>>
为什么我会了SOA,你们还要逼我学微服务?
查看>>
Linux Capabilities 入门:如何管理文件的 capabilities?
查看>>
Linux Capabilities 入门教程:基础实战篇
查看>>
如何向纯洁的女朋友解释并发与并行的区别?
查看>>
一名云原生搬砖师的自白
查看>>
红帽宣布发布企业容器仓库开源项目 Quay
查看>>
跨平台构建 Docker 镜像新姿势,x86、arm 一把梭
查看>>
k8s v1.17 新特性预告: 拓扑感知服务路由
查看>>
彻底理解矩阵乘法
查看>>
使用 buildx 构建多平台 Docker 镜像
查看>>
Kubelet 中的 “PLEG is not healthy” 到底是个什么鬼?
查看>>
不懂OpenShift,不足以谈云计算!
查看>>
别让自己“墙”了自己
查看>>
让你的网站用上炫酷的中文字体
查看>>
使用 font-spider 对 webfont 网页字体进行压缩
查看>>