之前一直以为卷积是二维的操作,而到今天才发现卷积其实是在volume上的卷积。比如输入的数据是channels*height*width(3*10*10),我们定义一个核函数大小为3*3,则输出是8*8。实际核函数的参数量是3*3*channels,在本例子中就是3*3*3。

举例:

假设输入的tensor是3*10*10,定义一个大小为3*3的kernel,如果进行一个conv2d操作,输出的feature map是5的话,那么这个conv2d涉及的参数数是3*3*3*5+5=140个,输出大小5*8*8。其中3*3*3代表的是核参数,5代表的是bias数。

验证代码:

from keras.layers import Dense, Conv2D
from keras.models import Sequential
model = Sequential()
conv1 = Conv2D(5, 3, input_shape=(3, 10, 10))
model.add(conv1)
print(model.summary())

_________________________________________________________________

Layer (type)                 Output Shape              Param #

=========================================================

conv2d_1 (Conv2D)            (None, 5, 8, 8)           140

=========================================================

Total params: 140

Trainable params: 140

Non-trainable params: 0

_________________________________________________________________

3D卷积意思是指在多个channel的volume上进行convolution操作。比如:5个4*10*10(深度、高度、宽度)大小的volume组成的高维数组。假设核大小为2*2*2,stride为1,输出feature map的数量为4,那么参数数为2*2*2*channels(5)*output feature maps(4)+4=164。输出大小为4*3*9*9。其中第一个4对应的是feature map数,第二个3对应的是深度,第三个9对应的是高度,第四个9对应的是宽度。

验证代码:

from keras.layers import Conv3D
from keras.models import Sequential

model = Sequential()
conv1 = Conv3D(4, 2, input_shape=(5, 4, 10, 10))
model.add(conv1)

print(model.summary())

_________________________________________________________________

Layer (type)                 Output Shape              Param #

=========================================================

conv3d_1 (Conv3D)            (None, 4, 3, 9, 9)        164

=========================================================

Total params: 164

Trainable params: 164

Non-trainable params: 0

_________________________________________________________________

转载于:https://www.cnblogs.com/chuantingSDU/p/8120065.html

CNN中的卷积操作的参数数计算相关推荐

  1. CNN中的卷积操作与参数共享

    文章目录 (一)局部连接与卷积 1.1图像的局部相关 什么是卷积? 1.3 不同的卷积核(filter) (二)CNN中的参数共享 2.1 图像底层特征的位置无关性 2.2 示例(一维向量) (三)参 ...

  2. CNN中的卷积操作与权值共享

    CNN中非常有特点的地方就在于它的局部连接和权值共享,通过卷积操作实现局部连接,这个局部区域的大小就是滤波器filter,避免了全连接中参数过多造成无法计算的情况,再通过参数共享来缩减实际参数的数量, ...

  3. cnn stride and padding_彻底搞懂CNN中的卷积和反卷积

    前言 卷积和反卷积在CNN中经常被用到,想要彻底搞懂并不是那么容易.本文主要分三个部分来讲解卷积和反卷积,分别包括概念.工作过程.代码示例,其中代码实践部分主结合TensorFlow框架来进行实践.给 ...

  4. 深度学习中的卷积操作

    本文从信号处理中的互相关运算引入深度学习中的卷积. 然后介绍了不同的卷积类型,以及如何在pytorch中使用这些卷积层. (在看pytorch文档中的Conv1D/2D/3D的时候感到比较困惑,又很好 ...

  5. CNN中的卷积的意义

    CNN中的卷积的意义,我认为卷积具有这样的意义: 无论是一维还是二维还是几维,卷积是一种可以筛选出和过滤器结构相匹配的内容的方式. 以一维为例,假设有一组序列,大体稳定在一个区间,没有相差特别大的.假 ...

  6. Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现

    二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...

  7. Winograd,GEMM算法综述(CNN中高效卷积实现)(下)

                   CNN高效卷积实现算法和应用综述(下) 论文分析 1. Fast Algorithms for Convolutional Neural Networks 分析的第一篇文 ...

  8. Winograd,GEMM算法综述(CNN中高效卷积实现)(上)

                           高效卷积实现算法和应用综述(上) 在下一篇文章会介绍Winograd算法的应用,在ICLR,CVPR,FPGA,FCCM等机器学习和FPGA领域的定会上的 ...

  9. CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等

    CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量.我下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中 ...

最新文章

  1. python映射类型有哪些_什么是python中唯一的映射类型
  2. [导入]利用PIL生成水印图片或文字
  3. 设计模式学习(六)结构型模式初步了解
  4. [转载]Mac使用vim命令修改配置文件内容
  5. element js 包含字符_selenium3.x(10)js弹框处理
  6. 单机 amp; 弱联网手游 防破解、金币改动 简单措施
  7. TestNG配合ant脚本进行单元测试
  8. 视频教程-【国内首套H3C V7交换机实战课程-1】Comware V7使用、维护与管理-H3C认证
  9. HKC PG27P3评测 HKC PG27P3怎么样
  10. 微信公众号使用:给微信公众号设置头像和微信号的步骤
  11. qt调用simsimi api实现小黄鸡
  12. android下划线链接,android7.0 TextView去除超链接下划线就这么难吗?
  13. 海思软件开发入门篇 (一)
  14. 肝脏~卧则回血,坐立向外供血
  15. 三大门派var,const,let之间的纠纷
  16. 机器学习--梯度-牛顿-拟牛顿优化算法和实现
  17. 为什么ios比android快,那些说ios比Android快的,进来看看!
  18. 外媒:谷歌称继续推动华为禁令可能带来美国国家安全风险
  19. antd Form.Item的name是数组时如何取值
  20. 如何跳过前端JavaScript的验证

热门文章

  1. DIY Virtual Wall for Roomba – Part One
  2. python爬虫从入门到放弃(一)之初识爬虫
  3. 从PM到GAN——LSTM之父Schmidhuber横跨22年的怨念(文字版)
  4. Part 1 – Reverse engineering using Androguard
  5. Android系统中的进程管理:进程的优先级
  6. 管家病毒查杀模块逆向分析
  7. 怎么安装python3.6.2_centos7.2下安装python3.6.2
  8. python概述_Python-概述
  9. 矩阵的特征值、特征向量
  10. HDOJ 4699-Editor[栈]