every blog every motto: Stay hungry, stay foolish.

0. 前言

主要讲下实际卷积运算中关于padding=same和padding=valid的输出特征图的大小,以及池化后特征图的大小。

1. 正文

1. 卷积运算

特别说明:卷积(除不尽)向下取整!!!!
特别说明:卷积(除不尽)向下取整!!!!
特别说明:卷积(除不尽)向下取整!!!!
关于卷积的基本运算参照卷积运算和运算后特征图大小计算1
参数定义:
输入大小:intputH
卷积核大小:K
步长:S
填充:P
输出图像大小:outputH

1.1 padding=valid

不进行填充,P=0,输入特征图大小为:
outputH=intputH−K+2∗0S+1outputH = \frac{intputH-K+2*0}{S}+1 outputH=SintputH−K+2∗0​+1
即:
outputH=intputH−KS+1outputH = \frac{intputH-K}{S}+1 outputH=SintputH−K​+1
卷积(除不尽)向下取整

1.2 padding=same

依据卷积核的大小,填充不同
K=1,P=0;
K=3,P=1;
K=5,P=3;
依次类推。
outputH=intputH−K+2PS+1outputH = \frac{intputH-K+2P}{S}+1 outputH=SintputH−K+2P​+1
卷积(除不尽)向下取整

2. 池化

特别说明:池化(除不尽)向上取整!!!!
特别说明:池化(除不尽)向上取整!!!!
特别说明:池化(除不尽)向上取整!!!!
池化没有填充,公式如下:
outputH=intputH−KS+1outputH = \frac{intputH-K}{S}+1 outputH=SintputH−K​+1

3. 练习

VGG部分代码,基于tensorflow1.x

3.1 练习一

# 416,416,3 -> 208,208,64
x = Conv2D(64, (3, 3), activation='relu', padding='same', name='block1_conv1')(img_input)
y = Conv2D(64, (3, 3), activation='relu', padding='same', name='block1_conv2')(x)
z = MaxPooling2D((2, 2), strides=(2, 2), name='block1_pool')(x)
f1 = z

说明: Keras中Conv2D默认步长为1,具体参数可参考文献1
代入公式:
第一个卷积:
XoutputH=416−3+21+1=416XoutputH = \frac{416-3+2}{1}+1=416 XoutputH=1416−3+2​+1=416
第二个卷积:
YoutputH=416−3+21+1=416YoutputH = \frac{416-3+2}{1}+1=416 YoutputH=1416−3+2​+1=416
池化:
ZoutputH=416−22+1=208ZoutputH = \frac{416-2}{2}+1=208 ZoutputH=2416−2​+1=208
至此: 输入出现由416 * 416 * 3 ⇒ 208 * 208 * 64 ( 64为卷积核个数,即Conv2D的第一个参数,具体可参考文献2

3.2 练习二

# 208,208,64 -> 104,104,128
x = Conv2D(128, (3, 3), activation='relu', padding='same', name='block2_conv1')(x)
y = Conv2D(128, (3, 3), activation='relu', padding='same', name='block2_conv2')(x)
z = MaxPooling2D((2, 2), strides=(2, 2), name='block2_pool')(x)
f2 = z

说明: Keras中Conv2D默认步长为1,具体参数可参考文献1
代入公式:
第一个卷积:
XoutputH=208−3+21+1=208XoutputH = \frac{208-3+2}{1}+1=208 XoutputH=1208−3+2​+1=208
第二个卷积:
YoutputH=208−3+21+1=208YoutputH = \frac{208-3+2}{1}+1=208 YoutputH=1208−3+2​+1=208
池化:
ZoutputH=208−22+1=104ZoutputH = \frac{208-2}{2}+1=104 ZoutputH=2208−2​+1=104
至此: 输入出现由208* 208 * 3 ⇒ 104 * 104 * 128 ( 128为卷积核个数,即Conv2D的第一个参数,具体可参考文献2

3.3 小结

由上例,可以发现,VGG的这种结构(卷积核 3 * 3 ,padding=same;池化 2 * 2,strides=(2,2))会让输出特征图长宽变成输入特征图长宽的一半。输出特征图通道数由卷积核个数决定!!!!
写在最后:
卷积(除不尽)向下取整,池化(除不尽)向上取整。
卷积(除不尽)向下取整,池化(除不尽)向上取整。
卷积(除不尽)向下取整,池化(除不尽)向上取整。
卷积(除不尽)向下取整,池化(除不尽)向上取整。

参考文献

[1] https://blog.csdn.net/econe_wei/article/details/94649003
[2] https://blog.csdn.net/weixin_39190382/article/details/105692853
[3] https://blog.csdn.net/weixin_38705903/article/details/89073938?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
[4] https://blog.csdn.net/bohuihuan8714/article/details/89894124?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3
[5] https://blog.csdn.net/AugustMe/article/details/92096724?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5
[6] https://keras-cn.readthedocs.io/en/latest/layers/pooling_layer/#maxpooling2d
[7] https://keras-cn.readthedocs.io/en/latest/layers/convolutional_layer/

卷积运算和运算后特征图大小计算2相关推荐

  1. 【卷积神经网络--卷积/池化后特征图大小计算公式】

    [卷积神经网络–卷积/池化后特征图大小计算公式] 参考链接: 卷积神经网络系列之卷积/池化后特征图大小怎么计算?? torch中的Conv2d卷积的输入的Tensor张量是:[batch, chann ...

  2. 卷积计算,反卷积计算,特征图大小计算,空洞卷积计算

    感受野大小计算.卷积参数量与计算量.空洞卷积计算量与参数量 卷积计算,反卷积计算,特征图大小计算,空洞卷积计算 转自:https://www.jianshu.com/p/09ea4df7a788?ut ...

  3. 卷积神经网络系列之卷积/池化后特征图大小怎么计算??

    1.卷积后的大小: W:矩阵宽,H:矩阵高,F:卷积核宽和高,P:padding(需要填充的0的个数),N:卷积核的个数,S:步长 width:卷积后输出矩阵的宽,height:卷积后输出矩阵的高 w ...

  4. 卷积和池化后特征图的大小~

    https://www.it610.com/article/1296242418328346624.htm

  5. 简明易懂——卷积神经网络的输入输出特征图大小计算

  6. group convolution (分组卷积)的计算量详解、卷积计算量特征图大小,池化特征图大小、深度通道deep-wise 卷积

    group convolution (分组卷积)的计算量详解.卷积计算量特征图大小,池化特征图大小.深度通道deep-wise 卷积 提示:最近忙着各种提前批的笔试面试,所以没太多空刷题了都,先复盘一 ...

  7. 卷积的感受野计算及特征图尺寸计算

    <卷积的感受野计算及特征图尺寸计算>   从FPN开始,目标检测的精度大幅提升,各种特征融合方式层出不穷,多尺度的特征一大优势是解决了小目标的检测问题.核心思想是利用浅层特征预测小目标,深 ...

  8. AlexNet层级分析(涉及:卷积核操作下下层网络特征图size计算;对通道和卷积核尺寸及通道前层feature map和卷积核的运算关系的解释)

    先盗一图,摘自ImageNet Classification with Deep Convolutional Neural Networks(Hinton) 注:看到这个结构,可以得到以下结论(以2. ...

  9. 解决U-net上采样过程后,结合下采样信息时特征图大小不匹配问题

    在U-net下采样后时,通过polling层,可能会出现这种情况,37*37feature maps 压缩成18*18大小,但在上采样过程中,利用 nn.ConvTranspose2d()通常变为36 ...

  10. 卷积神经网络中特征图大小计算公式总结

    W:输入特征图的宽,H:输入特征图的高 K:kernel size卷积核宽和高,P:padding(特征图需要填充的0的个数),S:stride步长 width_out:卷积后输出特征图的宽,heig ...

最新文章

  1. xctf secret galaxy_三星SMARTTHINGS FIND正式发布 可帮助轻松查找GALAXY设备
  2. redis之五大数据类型
  3. Kubernetes二进制部署——证书的制作和ETCD的部署
  4. java中标准封装结构_java中的构造,封装
  5. 网络安全统计显示XSS和过时的软件是主要问题
  6. Arturia Pigments for Mac - 数字波表双引擎合成器插件
  7. 中文GRasshopper插件lunchbox(午餐盒),首发哦!
  8. 红帽子linux 命令,红帽子_Linux_命令全解
  9. 《我们在时光的列车上,没有终点》
  10. 国外优秀免费空间对比APPFOG VS TECHNETCAL
  11. element plus之el-table行融合+列融合+小计行+自定义控件+样式自定义方案
  12. Win10下Python3.x环境安装和配置教程
  13. C# 一键获取本机的详细IP信息
  14. android 自动打开wifi热点
  15. VMware 安装Ubuntu系统后,启动一直黑屏
  16. 电信 802.1p 设置_电信VoLTE免费开通
  17. wc 一个进程结果是2_用开放的wc创建一个Web组件
  18. centos 安装gcc9及配置
  19. 如何搭建一个自己的安全测试实验室WebGoat?
  20. 一些概念DRX DTX SFN MFN。

热门文章

  1. rpm升级linux内核,用rpm方式升级RHEL6.1内核
  2. linux 完成量源码,Linux内核中等待队列 和完成量
  3. Python:身份运算符is和==的区别
  4. HTML:颜色列表(自用)
  5. 各种常用STL容器选择 需求分析笔记
  6. python pandas库-dataframe.pivot()方法的理解
  7. Rviz教程系列第一章之Markers
  8. VAE-变分自编码器-Auto-Encoding Variational Bayes-详细推导
  9. 重磅!国内首个三维重建系列视频课程,涉及SFM、立体匹配、多视图几何、结构光等...
  10. ROS下面调用自定义的头文件和.cpp/.so文件(亲测有效)