卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)

分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算。

以AlexNet网络为例,以下是该网络的参数结构图。

AlexNet网络的层结构如下:

1.Input:       图像的尺寸是227*227*3.

2.Conv-1:    第1层卷积层的核大小11*11,96个核。步长(stride)为4,边缘填充(padding)为0。

3.MaxPool-1:     池化层-1对Conv-1进行池化,尺寸为3*3,步长为2.

4.Conv-2:    核尺寸:5*5,数量:256,步长:1,填充:2

5.MaxPool-2:     尺寸:3*3,步长:2

6.Conv-3: 核尺寸:3*3,数量:384,步长:1,填充:1

7: Conv-4:   结构同Conv-3.

8. Conv-5:   核尺寸:3*3,数量:256,步长:1,填充:1

9. MaxPool-3: 尺寸:3*3,步长:2

10.FC-1:       全连接层1共有4096个神经元。

11.FC-1:       全连接层2共有4096个神经元。

12.FC-3:       全连接层3共有1000个神经元。

接下来,我们对以上的网络结构进行描述:

1.如何计算张量(图像)的尺寸;

2.如何计算网络的总参数;

卷积层(Conv Layer)的输出张量(图像)的大小

定义如下:

O=输出图像的尺寸。

I=输入图像的尺寸。

K=卷积层的核尺寸

N=核数量

S=移动步长

P =填充数

输出图像尺寸的计算公式如下:

输出图像的通道数等于核数量N。

示例:AlexNet中输入图像的尺寸为227*227*3.第一个卷积层有96个尺寸为11*11*3的核。步长为4,填充为0.

输出的图像为55*55*96(每个核对应1个通道)。

池化层(MaxPool Layer)的输出张量(图像)的大小

定义如下:

O=输出图像的尺寸。
I=输入图像的尺寸。
S=移动步长
PS=池化层尺寸

输出图像尺寸的计算公式如下:

不同于卷积层,池化层的输出通道数不改变。

示例:每1层卷积层后的池化层的池化层尺寸为3*3,步长为2。根据前面卷积层的输出为55*55*96。池化层的输出图像尺寸如下:

输出尺寸为27*27*96。

全连接层(Fully Connected Layer)的输出张量(图像)的大小

全连接层输出向量长度等于神经元的数量。

通过AlexNet改变张量(图像)的尺寸的结构如下:

在AlexNet网络中,输出的图像尺寸为227*227*3.

Conv-1,尺寸变为55*55*96,池化层后变为27*27*96。

Conv-2,尺寸变为27*27*256,池化层后变为13*13*256.

Conv-3,尺寸变为13*13*384,经过Conv-4和Conv-5变回13*13*256.

最后,MaxPool-3尺寸缩小至6*6*256.

图像通过FC-1转换为向量4096*1.通过FC-2尺寸未改变.最终,通过FC-3输出1000*1的尺寸张量.

接下来,计算每层的参数数量.

Conv Layer参数数量

在CNN中,每层有两种类型的参数:weights 和biases.总参数数量为所有weights和biases的总和.

定义如下:

WC=卷积层的weights数量

BC=卷积层的biases数量

PC=所有参数的数量

K=核尺寸

N=核数量

C =输入图像通道数

卷积层中,核的深度等于输入图像的通道数.于是每个核有K*K个参数.并且有N个核.由此得出以下的公式.

示例:AlexNet网络中,第1个卷积层,输入图像的通道数(C)是3,核尺寸(K)是11*11,核数量是96. 该层的参数计算如下:

计算出Conv-2, Conv-3, Conv-4, Conv-5 的参数分别为 614656 , 885120, 1327488 和884992.卷积层的总参数就达到3,747,200.

MaxPool Layer参数数量

没有与MaxPool layer相关的参数量.尺寸,步长和填充数都是超参数.

Fully Connected (FC) Layer参数数量

在CNN中有两种类型的全连接层.第1种是连接到最后1个卷积层,另外1种的FC层是连接到其他的FC层.两种情况我们分开讨论.

类型1:连接到Conv Layer

定义如下:

Wcf= weights的数量

Bcf= biases的数量
O= 前卷积层的输出图像的尺寸

N = 前卷积层的核数量

F = 全连接层的神经元数量

示例: AlexNet网络中第1个FC层连接至Conv Layer.该层的O为6,N为256,F为4096.

参数数目远大于所有Conv Layer的参数和.

类型2:连接到FC Layer

定义如下:

Wff= weights的数量

Bff= biases的数量

Pff= 总参数的数量

F= 当前FC层的神经元数量

F-1 = 前FC层的神经元数量

示例:AlexNet的最后1个全连接层,   F-1=4096,F=1000 .

AlexNet网络中张量(图像)尺寸和参数数量

AlexNet网络中总共有5个卷积层和3个全连接层.总共有62,378,344个参数.以下是汇总表.

Layer Name

Tensor Size

Weights

Biases

Parameters

Input Image

227x227x3

0

0

0

Conv-1

55x55x96

34,848

96

34,944

MaxPool-1

27x27x96

0

0

0

Conv-2

27x27x256

614,400

256

614,656

MaxPool-2

13x13x256

0

0

0

Conv-3

13x13x384

884,736

384

885,120

Conv-4

13x13x384

1,327,104

384

1,327,488

Conv-5

13x13x256

884,736

256

884,992

MaxPool-3

6x6x256

0

0

0

FC-1

4096×1

37,748,736

4,096

37,752,832

FC-2

4096×1

16,777,216

4,096

16,781,312

FC-3

1000×1

4,096,000

1,000

4,097,000

Output

1000×1

0

0

0

Total

     

62,378,344

卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)相关推荐

  1. 大话卷积神经网络CNN,小白也能看懂的深度学习算法教程,全程干货建议收藏!...

    来源 | 程序员管小亮 本文创作的主要目的,是对时下最火最流行的深度学习算法的基础知识做一个简介,作者看过许多教程,感觉对小白不是特别友好,尤其是在踩过好多坑之后,于是便有了写这篇文章的想法. 由于文 ...

  2. Keras : 利用卷积神经网络CNN对图像进行分类,以mnist数据集为例建立模型并预测

    我是本期目录酱! 引入 计算机视觉 图像特征 如何区分图像的类别 卷积神经网络 卷积Convolution 卷积层 池化Pooling 卷积神经网络 以mnist数据集为例建立模型并预测 简单分析 p ...

  3. 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】

    卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...

  4. CNN---用于图像分类的经典的卷积神经网络CNN

    文章目录 概览 1.计算机视觉简介: 2.图像分类 一.LeNet-5 1.模型架构 2.模型简介 3.模型特点 二.AlexNet 1.网络架构 2.模型介绍 3.模型特点 三.VGGNet 1.模 ...

  5. CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)

    CV:计算机视觉技术之图像基础知识(二)-以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 ...

  6. python狗品种识别_卷积神经网络(CNN)项目,给你一个狗的图像,你的算法将会识别并估计狗的品种...

    广告:Udacity课程优惠券:邀请码: 67D6DA2E,立减 300 元 项目概述 欢迎来到卷积神经网络(CNN)项目!在这一项目中,你将学到如何建立一个处理现实生活中的,用户提供的图像的算法.给 ...

  7. c语言实现图片卷积_卷积神经网络(CNN)Python的底层实现——以LeNet为例

    本文介绍了如何使用Python从底层实现一个简单但经典的卷积神经网络结构--LeNet,并用它完成MNIST手写数字识别任务. 具体的完整代码以及代码的使用方法,可以光顾我的Github Profes ...

  8. 基于卷积神经网络 CNN 的猫狗识别详细过程

    目录 一.卷积神经网络(CNN) 1.1 卷积 1.2 前馈神经网络 1.3 卷积神经网络(CNN) 二.配置环境 三.猫狗数据分类建模 3.1 猫狗图像预处理 3.2 猫狗分类的实例--基准模型 3 ...

  9. 深度学习:卷积神经网络CNN入门

    作者:机器之心 链接:https://www.zhihu.com/question/52668301/answer/131573702 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

最新文章

  1. C++操作Redis的简单例子
  2. 大数运算(8)——大数幂运算
  3. android 如何判断h5页面是否加载完成_H5 键盘兼容性小结
  4. 从零开始攻略PHP(8)——面向对象(下)
  5. java 实例变量和类变量
  6. linux录制远程麦克风声音,在Linux上录制麦克风到wav或mp3文件?
  7. Linux系统编程32:进程信号之详解信号集操作函数(sigset_t ,sigpending,sigprocmask)
  8. 人脸方向学习(十九):Face Landmark Detection-SBR-解读
  9. Dell T630,插一个显示器,设置中看到两个显示器
  10. wps2000集成办公系统 v3.02.99专业版(附序列号)|wps2000老版本
  11. 第五讲 交错级数、绝对收敛和条件收敛
  12. raid5用户mbr还是gpt_对硬盘进行分区时,GPT和MBR有什么区别?
  13. 农村小伙从月薪2000多到年薪几十万,我的这条路大多数搬砖人都能走 ǃ
  14. 利用python做出电视剧收视率排行榜
  15. 系统问题导致的笔记本部分按键失灵
  16. CommonAPI使用例子-HelloWorld
  17. vs code 软件设置中文
  18. 计及需求侧响应日前、日内两阶段鲁棒备用优化(Matlab代码实现)
  19. csgo服务器取消自动踢人,CSGO踢出玩家Kick相关控制台指令
  20. 国家公务员局提醒考生:所谓命题专家不可信-公务员-国考

热门文章

  1. 二进制与十进制的小数位怎么转?
  2. 条形码?二维码?生成、解析都在这里!
  3. 2022-2028年中国第五代移动通信技术(5G)市场研究及前瞻分析报告
  4. 2022-2028年中国汽车天线行业市场需求与投资规划分析报告
  5. RPC 笔记(03)— gRPC 概念、安装、编译、客户端和服务端示例
  6. 顺时针打印矩阵 python
  7. 论文溯源树AMiner
  8. LLVM数据流分析的理论
  9. Arm Cortex-M3 MCU性能
  10. ONNX MLIR方法