tf.nn.conv2d(value,filter,strides,[...])

对于图片来说

value :   形状通常是np.array()类型的4维数组也称tensor(张量),  (batch,height,width,channels) 可以理解为(图片样本的个数,高,宽,图片的颜色通道数)

value是待卷积的数据

filter: 卷积核 -4元素元组【height,width,in_channels,out_channels】,前面的3个参数和value的后面3个参数一一对应。但是out_channels不太确定,卷积核的个数,

    如果对一个shape 为[64,40,120,32]的数据进行卷积 filter=【3,3,32,64】,padding='same',strides=[1, 1, 1, 1] ,shape就变为了[64,40,120,64].

    [3,3,32]与[40,120,32]进行对应,32=32,则相当于 【3,3】对【40,120】,卷积时以【3*3】的扫描面积在【40,120】上进行扫描,每扫描一次,在结果集上产生一个【1,1】的数据单位

起始位置为【40,120】上面的最前面【3,3】的部分,

移动步调大小为【1,1,1,1】,即上下左右每次移动都只能移动1个单位,每次只能向一个方向移动,

same表示结束位置为 卷积核与源数据重叠,只需移动一个单位则不再重叠。

    所以,对于【40,120,32】经过【3,3,32】的扫描后变成【40,120,1】,64表示经过了64次这样的扫描,于成了【40,120,64】

padding: 扫描时对边角面积的处理模式 。SAME表示    扫描的的时候,对于源矩阵中 不足卷积核大小的 面积 仍进行扫描 ,直到卷积核的左边缘与源矩阵右边缘不相交为止。卷积核与源矩阵没有任何重叠部分 的扫描 不在结果集上产生数据单位。     VALID 表示,扫描时,对于源矩阵中 不足卷积核大小的 面积舍弃,不再扫描。

tf.nn.max_pool(value,ksize,strides)池化与卷积的过程原理基本一样,

ksize池化窗【batch,height,width,channels】,
只是卷积改变的是height,width,channels,池化通常改变的是height,width 。
conv1 = tf.nn.max_pool(conv1, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME') #[64,20,60,32]

对于[64,20,60,32] 的矩阵进行池化,卷积核【2,2】,步长【2,2】表示卷积核的面积为2*2,每次扫描时移动的步调大小是2个单位,如果对于一个4*4的矩阵,进行这个种扫描,

扫描四次(2*2)即可扫描完成。如果是5*5的矩阵,不足卷积核的模式为same,则需扫描9次(3*3),valid模式4次(2*2)。

所以,【64,20,60,32】的矩阵池化后shape则变为 【64,10,30,32】。

转载于:https://www.cnblogs.com/Ting-light/p/9255216.html

tf.nn的conv2d卷积与max_pool池化相关推荐

  1. (pytorch-深度学习系列)pytorch卷积层与池化层输出的尺寸的计算公式详解

    pytorch卷积层与池化层输出的尺寸的计算公式详解 要设计卷积神经网络的结构,必须匹配层与层之间的输入与输出的尺寸,这就需要较好的计算输出尺寸 先列出公式: 卷积后,池化后尺寸计算公式: (图像尺寸 ...

  2. 深入学习卷积神经网络中卷积层和池化层的意义(转)

    为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...

  3. pytorch 入门:GPU加速,卷积层,池化层

    GPU 加速 深度学习设计很多向量和多矩阵运算,比如BP , CNN 等深层模型都可以写成矩阵运算的格式,不用写成循环运算.但是CPU 上矩阵的运算会被展成循环的形式,CPU 是串行执行的.而GPU ...

  4. 狠补基础-数学+算法角度讲解卷积层,激活函数,池化层,Dropout层,BN层,全链接层

    狠补基础-数学+算法角度讲解卷积层,激活函数,池化层,Dropout层,BN层,全链接层 在这篇文章中您将会从数学和算法两个角度去重新温习一下卷积层,激活函数,池化层,Dropout层,BN层,全链接 ...

  5. 深入学习卷积神经网络中卷积层和池化层的意义

    为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...

  6. 深度学习入门 (九):卷积层和池化层的实现

    目录 卷积神经网络 CNN 整体结构 卷积层 全连接层存在的问题 卷积运算 乘积累加运算 偏置 填充 (padding) 步幅 (stride) 小结:卷积层的输出特征图的大小 3 维数据的卷积运算 ...

  7. 卷积层,池化层,padding=‘same‘ ,为什么卷积层图像尺寸不变,池化层后图像尺寸减半呢?

    先摆一下通用计算公式: h:图像长度,k:卷积/池化核尺寸,p:填充数,s:移动步长 长度公式: 宽度公式: 对于经过卷积,池化后的图像尺寸都可以按照此公式进行计算. 在实际的使用过程中经常会有此疑惑 ...

  8. 理解CNN卷积层与池化层计算

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 概述 深度学习中CNN网络是核心,对CNN网络来说卷积层与池化层的 ...

  9. 卷积神经网络的整体结构、卷积层、池化、python实现

    卷积神经网络的整体结构.卷积层.池化.python实现 一.整体结构 二.卷积层 三.池化层 四.python实现卷积层.池化层 一.整体结构 神经网络相邻层所有神经元之间都有连接,称为全连接.前面用 ...

  10. 卷积层和池化层的计算公式的区别

    n为图像宽/高 f为卷积核宽/高 p为填充长度 stride为步长 卷积层后输出图像的大小:(n-f+2p)/stride 向下取整 池化层后输出图像的大小:(n-f+2p)/stride 向上取整 ...

最新文章

  1. redis 本地安装
  2. C++ PAT 乙级 ——1003 我要通过
  3. 单播广播多播任播的分别
  4. java中注解操作redis_spring boot —— redis 缓存注解使用教程
  5. Facts have proved that this is more popular than his article
  6. 用 JAVA 开发游戏连连看(之四)添加更多的功能
  7. 【转载】关于大型asp.net应用系统的架构-架构的选择
  8. Mysql主从知识扩展部分1
  9. 软件工程——五大模型
  10. SpringAop原理
  11. hyperscan5.0编译方式整理
  12. iec61508最新2020_功能安全IEC61508标准新旧版的对比
  13. IP地址、子网掩码、网络数、主机数、广播地址及其计算方法
  14. 模拟行走机器人-c语言
  15. echart可视化图表多条折线显示数据混乱问题
  16. framemaker 导出word文档,利用list遍历输出换行以及保留段落格式(首行空两格)
  17. 计算机硬盘损坏 数据如何修复,如何修复计算机硬盘错误?如何从硬盘数据损坏中恢复数据?...
  18. [历史随笔]帝国如风--元朝的另类历史
  19. [禅悟人生]自卑裹足不前, 就无法成就自己
  20. Windows10安装MinGW-w64

热门文章

  1. php主页备案号底部中间,如何将网站备案号放到网站底部
  2. 全自动驾驶论文_自动驾驶汽车:我们距离全自动驾驶有多近?
  3. linux查看创建目录命令,Linux菜鸟——常见命令一 查看及创建目录文件等命令
  4. netbeans linux 安装教程,linux下安装NetBeans 6.0
  5. iis7网站可用php吗,在IIS7下面添加对PHP网页的支持
  6. C# 多线程七之Parallel
  7. 随笔:刚放出的那个存储“神器”,是否一场鸡血式狂欢
  8. oracle 密码忘记 找回密码
  9. 精通CSS滤镜(FILTER)
  10. 来自糯大米童鞋的 纯 golang 的 mp4 读写库。