卷积池化尺寸计算公式

卷积层[Conv]:

卷积CNN是我们最常使用的,但是有时候需要观察他的输出前后的差异,这里描述下计算方式,具体如下:

图片大小:WxHxD  W:宽 H:高 D:通道(RGB) 例:320x320x3

卷积核:NxNx3   卷积核大小 后面的3是和图片的通道对应,如果图片是灰度的那么就是1

卷积核个数:C 

步长:S   每次一卷积的时候跨越的步长

填充:P  外网填充多少行和列,一般是图片保留特征或者是维持图片大小

公式计算:

输出数据的高度:OH = (H - N + 2P) / S + 1
输出数据的宽度:OW = (W - N + 2P) / S + 1
输出数据的深度:OD = 卷积核的个数C

*如果输出数据的尺寸不是整数,会对输出数据进行四舍五入或者向下取整等操作。

例子:

输入数据为:3x320x320   

我们这里是BGR的图片,一般cv默认处理就是BGR图片,通道是3,宽和高都是320,也可以理解为三张320x320的图片,方便神经网络的处理

卷积参数:卷积个数:16,卷积核:3x4x4 (由于通道是3,卷积核宽和高都是4,当然卷积核默认都是奇数,这里测试写了个偶数4,选择偶数会导致特征偏移不建议)、步长:3  填充:2

根据公式计算:

输出图片宽:((320 - 4 + 2x2)/ 3 )+ 1  = 107.6666 ≈ 107(选择向下取整,也可以四舍五入,看算法)

输出图片高:((320 - 4 + 2x2)/ 3 )+ 1  = 107.6666 ≈ 107(选择向下取整,也可以四舍五入,看算法)

通道数:16(直接为卷积核个数)

输出的数据为:16x107x107

池化层[Pool]:

池化也是提取特征,可以达到快速缩小特征,比如最大池化、平均池化

里面包含的也是 滤波器  步长

图片大小:WxHxD  W:宽 H:高 D:通道(RGB) 例:320x320x3

滤波器:NxN   滤波器的宽高

公式:(和卷积差不多没有填充)

输出数据的高度:OH = (H - N ) / S + 1
输出数据的宽度:OW = (W - N ) / S + 1

例子

图片输入:3x320x320

池化层:3x3  步长 2

根据公式计算:

输出图片宽:((320 - 3)/ 2 )+ 1  = 159.5≈ 159(选择向下取整,也可以四舍五入,看算法)

输出图片高:((320 - 3)/ 2 )+ 1  = 159.5≈ 159(选择向下取整,也可以四舍五入,看算法)

通道数:3

输出数据为:3x159x159

膨胀卷积【Conv】

卷积的一种,在卷积核中插入空洞(dilation)来扩大感受野,从而捕捉更广泛的上下文信息。膨胀卷积通常用于处理具有较大空间范围的输入数据,(个人理解,其实就是特征图太紧凑了,比如鼻子嘴巴都黏到一起了,通过添加一些空白值把鼻子和嘴巴隔开些,更好的观察分析,如果离得太近可能在某次池化或者卷积就把特征卷没了),用途如图像分割、语义分割,包含膨胀卷积、扩张卷积、空洞卷积。

根常规的卷积比,增加了一个膨胀因子R,具体如下

图片大小:WxHxD  W:宽 H:高 D:通道(RGB) 例:320x320x3

卷积核:NxNx3   卷积核大小 后面的3是和图片的通道对应,如果图片是灰度的那么就是1

卷积核个数:C 

膨胀因子:R  (增加视野的参数)

步长:S   每次一卷积的时候跨越的步长

填充:P  外网填充多少行和列,一般是图片保留特征或者是维持图片大小

首先需要根据膨胀卷积计算出感受野,其实就是相当正常卷积的卷积核宽高(N)

感受野假设为D,感受野大小 = (卷积核大小 - 1) * 膨胀率 + 1

感受野D的计算公式:D = (N-1)*(R-1) +N

输出数据的高度:OH = (H - D + 2P) / S + 1
输出数据的宽度:OW = (W - D + 2P) / S + 1
输出数据的深度:OD = 卷积核的个数C

例子

输入数据为:3x320x320   

我们这里是BGR的图片,一般cv默认处理就是BGR图片,通道是3,宽和高都是320,也可以理解为三张320x320的图片,方便神经网络的处理

卷积参数:卷积个数:16,卷积核:3x4x4 (由于通道是3,卷积核宽和高都是4,当然卷积核默认都是奇数,这里测试写了个偶数4,选择偶数会导致特征偏移不建议)、膨胀因子为2(1为默认卷积)、步长:3  填充:2

根据公式计算:

感受野计算:D= (4-1)*(2-1)+4 =7

输出图片宽:((320 - 7 + 2x2)/ 3 )+ 1  = 106.6666 ≈ 106(选择向下取整,也可以四舍五入,看算法)

输出图片高:((320 - 7 + 2x2)/ 3 )+ 1  = 106.6666 ≈ 106(选择向下取整,也可以四舍五入,看算法)

通道数:16(直接为卷积核个数)

输出的数据为:16x106x106

相关推荐

  1. 尺寸计算公式

    2024-06-06 23:38:01       37 阅读
  2. 37、的区别

    2024-06-06 23:38:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 23:38:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 23:38:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 23:38:01       82 阅读
  4. Python语言-面向对象

    2024-06-06 23:38:01       91 阅读

热门阅读

  1. linux中的“->“符号

    2024-06-06 23:38:01       28 阅读
  2. vscode远程登录ubuntu linux报错,一直输入密码问题

    2024-06-06 23:38:01       26 阅读
  3. TensorRT教程(1)初探TensorRT

    2024-06-06 23:38:01       31 阅读
  4. Docker迁移默认存储目录(GPT-4o)

    2024-06-06 23:38:01       30 阅读
  5. 常见的项目模块以及项目流程

    2024-06-06 23:38:01       22 阅读
  6. vue基础知识点

    2024-06-06 23:38:01       36 阅读
  7. ubuntu22 部署zookeeper + kafka集群 & 配置开机自启动

    2024-06-06 23:38:01       31 阅读
  8. UML类图

    UML类图

    2024-06-06 23:38:01      26 阅读
  9. 第七章 Python-函数进阶

    2024-06-06 23:38:01       22 阅读