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】。

tf.nn的conv2d卷积与max_pool池化的更多相关文章

  1. tensorflow CNN 卷积神经网络中的卷积层和池化层的代码和效果图

    tensorflow CNN 卷积神经网络中的卷积层和池化层的代码和效果图 因为很多 demo 都比较复杂,专门抽出这两个函数,写的 demo. 更多教程:http://www.tensorflown ...

  2. 基于深度学习和迁移学习的识花实践——利用 VGG16 的深度网络结构中的五轮卷积网络层和池化层,对每张图片得到一个 4096 维的特征向量,然后我们直接用这个特征向量替代原来的图片,再加若干层全连接的神经网络,对花朵数据集进行训练(属于模型迁移)

    基于深度学习和迁移学习的识花实践(转)   深度学习是人工智能领域近年来最火热的话题之一,但是对于个人来说,以往想要玩转深度学习除了要具备高超的编程技巧,还需要有海量的数据和强劲的硬件.不过 Tens ...

  3. 【python实现卷积神经网络】池化层实现

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  4. tf.nn.max_pool 池化

    tf.nn.max_pool( value, ksize, strides, padding, data_format='NHWC', name=None ) 参数: value:由data_form ...

  5. 深度学习原理与框架-图像补全(原理与代码) 1.tf.nn.moments(求平均值和标准差) 2.tf.control_dependencies(先执行内部操作) 3.tf.cond(判别执行前或后函数) 4.tf.nn.atrous_conv2d 5.tf.nn.conv2d_transpose(反卷积) 7.tf.train.get_checkpoint_state(判断sess是否存在

    1. tf.nn.moments(x, axes=[0, 1, 2])  # 对前三个维度求平均值和标准差,结果为最后一个维度,即对每个feature_map求平均值和标准差 参数说明:x为输入的fe ...

  6. 深度学习原理与框架- tf.nn.atrous_conv2d(空洞卷积) 问题:空洞卷积增加了卷积核的维度,为什么不直接使用7*7呢

    空洞卷积, 从图中可以看出,对于一个3*3的卷积,可以通过使用增加卷积的空洞的个数,来获得较大的感受眼, 从第一幅图中可以看出3*3的卷积,可以通过补零的方式,变成7*7的感受眼,这里补零的个数为1, ...

  7. 深度学习原理与框架- tf.nn.conv2d_transpose(反卷积操作) tf.nn.conv2d_transpose(进行反卷积操作) 对于stride的理解存在问题?

    反卷积操作: 首先对需要进行维度扩张的feature_map 进行补零操作,然后使用3*3的卷积核,进行卷积操作,使得其维度进行扩张,图中可以看出,2*2的feature经过卷积变成了4*4.    ...

  8. 第十四节,TensorFlow中的反卷积,反池化操作以及gradients的使用

    反卷积是指,通过测量输出和已知输入重构未知输入的过程.在神经网络中,反卷积过程并不具备学习的能力,仅仅是用于可视化一个已经训练好的卷积神经网络,没有学习训练的过程.反卷积有着许多特别的应用,一般可以用 ...

  9. 『TensorFlow』卷积层、池化层详解

    一.前向计算和反向传播数学过程讲解

随机推荐

  1. POJ 2348 Euclid's Game(博弈)题解

    题意:有a,b两个数字,两人轮流操作,每次可以选择两个之中较小的数字,然后另一个数字减去选择数字的任意倍数(不能减到负数),直到其中一个为0,不能操作为败 思路:这题用博弈NP思想,必败点和必胜点之间 ...

  2. 【Git安装】centos安装git

    1 yum install git 安装后的默认存放地点/usr/bin/git

  3. 51nod 1202 子序列个数

    1202 子序列个数  题目来源: 福州大学 OJ 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 子序列的定义:对于一个序列a=a[1],a[2] ...

  4. 安装labelImage的问题qt

    不知为何需要些source ~/.bash_profile才 自己在 ~/.bash_profile 中配置环境变量, 可是每次重启终端后配置的不生效.需要重新执行 : $source ~/.bash ...

  5. 基于MySQl的分页显示

    <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.ResultSet ...

  6. Ubuntu 关闭防火墙

    关闭防火墙:service iptables stop

  7. NPOI操作

    1.操作Excel 准备生成的公共方法(将数据源DataTable转换成MemoryStream) /// <summary> /// 生成Excel /// </summary&g ...

  8. [ios]Xcode常用快捷键

    参考:http://www.linuxidc.com/Linux/2012-08/67905.htm Xcode常用快捷键 隐藏xcode command+h退出xcode command+q关闭窗口 ...

  9. chrome表单自动填充去掉input黄色背景

    input文本框是纯色背景的 1. input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white inset!important; ...

  10. C# Interface中的属性

    只能写get,和set,到具体类实现的时候才确定get的是哪个字段的值,set的是哪个字段的值.