tf.nn的conv2d卷积与max_pool池化
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池化相关推荐
- (pytorch-深度学习系列)pytorch卷积层与池化层输出的尺寸的计算公式详解
pytorch卷积层与池化层输出的尺寸的计算公式详解 要设计卷积神经网络的结构,必须匹配层与层之间的输入与输出的尺寸,这就需要较好的计算输出尺寸 先列出公式: 卷积后,池化后尺寸计算公式: (图像尺寸 ...
- 深入学习卷积神经网络中卷积层和池化层的意义(转)
为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...
- pytorch 入门:GPU加速,卷积层,池化层
GPU 加速 深度学习设计很多向量和多矩阵运算,比如BP , CNN 等深层模型都可以写成矩阵运算的格式,不用写成循环运算.但是CPU 上矩阵的运算会被展成循环的形式,CPU 是串行执行的.而GPU ...
- 狠补基础-数学+算法角度讲解卷积层,激活函数,池化层,Dropout层,BN层,全链接层
狠补基础-数学+算法角度讲解卷积层,激活函数,池化层,Dropout层,BN层,全链接层 在这篇文章中您将会从数学和算法两个角度去重新温习一下卷积层,激活函数,池化层,Dropout层,BN层,全链接 ...
- 深入学习卷积神经网络中卷积层和池化层的意义
为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...
- 深度学习入门 (九):卷积层和池化层的实现
目录 卷积神经网络 CNN 整体结构 卷积层 全连接层存在的问题 卷积运算 乘积累加运算 偏置 填充 (padding) 步幅 (stride) 小结:卷积层的输出特征图的大小 3 维数据的卷积运算 ...
- 卷积层,池化层,padding=‘same‘ ,为什么卷积层图像尺寸不变,池化层后图像尺寸减半呢?
先摆一下通用计算公式: h:图像长度,k:卷积/池化核尺寸,p:填充数,s:移动步长 长度公式: 宽度公式: 对于经过卷积,池化后的图像尺寸都可以按照此公式进行计算. 在实际的使用过程中经常会有此疑惑 ...
- 理解CNN卷积层与池化层计算
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 概述 深度学习中CNN网络是核心,对CNN网络来说卷积层与池化层的 ...
- 卷积神经网络的整体结构、卷积层、池化、python实现
卷积神经网络的整体结构.卷积层.池化.python实现 一.整体结构 二.卷积层 三.池化层 四.python实现卷积层.池化层 一.整体结构 神经网络相邻层所有神经元之间都有连接,称为全连接.前面用 ...
- 卷积层和池化层的计算公式的区别
n为图像宽/高 f为卷积核宽/高 p为填充长度 stride为步长 卷积层后输出图像的大小:(n-f+2p)/stride 向下取整 池化层后输出图像的大小:(n-f+2p)/stride 向上取整 ...
最新文章
- redis 本地安装
- C++ PAT 乙级 ——1003 我要通过
- 单播广播多播任播的分别
- java中注解操作redis_spring boot —— redis 缓存注解使用教程
- Facts have proved that this is more popular than his article
- 用 JAVA 开发游戏连连看(之四)添加更多的功能
- 【转载】关于大型asp.net应用系统的架构-架构的选择
- Mysql主从知识扩展部分1
- 软件工程——五大模型
- SpringAop原理
- hyperscan5.0编译方式整理
- iec61508最新2020_功能安全IEC61508标准新旧版的对比
- IP地址、子网掩码、网络数、主机数、广播地址及其计算方法
- 模拟行走机器人-c语言
- echart可视化图表多条折线显示数据混乱问题
- framemaker 导出word文档,利用list遍历输出换行以及保留段落格式(首行空两格)
- 计算机硬盘损坏 数据如何修复,如何修复计算机硬盘错误?如何从硬盘数据损坏中恢复数据?...
- [历史随笔]帝国如风--元朝的另类历史
- [禅悟人生]自卑裹足不前, 就无法成就自己
- Windows10安装MinGW-w64
热门文章
- php主页备案号底部中间,如何将网站备案号放到网站底部
- 全自动驾驶论文_自动驾驶汽车:我们距离全自动驾驶有多近?
- linux查看创建目录命令,Linux菜鸟——常见命令一 查看及创建目录文件等命令
- netbeans linux 安装教程,linux下安装NetBeans 6.0
- iis7网站可用php吗,在IIS7下面添加对PHP网页的支持
- C# 多线程七之Parallel
- 随笔:刚放出的那个存储“神器”,是否一场鸡血式狂欢
- oracle 密码忘记 找回密码
- 精通CSS滤镜(FILTER)
- 来自糯大米童鞋的 纯 golang 的 mp4 读写库。