卷积神经网络的理解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了卷积神经网络的理解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1847字,纯文字阅读大概需要3分钟。
内容图文
![卷积神经网络的理解](/upload/InfoBanner/zyjiaocheng/1312/d69ca055d6974753baabf8d1cc691506.jpg)
CNN中减少参数的2两个规则:
1、局部感知。生物学中,视觉皮层的神经元是局部感知信息的,只响应某些特定区域的刺激;图像的空间联系中,局部的像素联系较为紧密,距离较远的像素相关性较弱。
这个对应于算法中卷积核的大小,mnist手写识别在28*28的像素中取patch为5*5。
上图中:左边是全连接,右边是局部连接。
2、权值共享。每个神经元对应的参数(权值)都相等。隐含的原理是:图像的一部分的统计特性与其他部分是一样的。那么在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,都能使用同样的学习特征。
注:卷积可参考数字图像处理中的滤波处理,滤波就是对于大矩阵中的每个像素, 计算它周围像素和滤波器(卷积核)矩阵对应位置元素的乘积, 然后把结果相加到一起, 最终得到的值就作为该像素的新值, 这样就完成了一次滤波。该过程也叫卷积,区别在于,图像卷积计算,需要先翻转卷积核
, 也就是绕卷积核
中心旋转 180
度。
以下转自http://blog.csdn.net/mao_xiao_feng/article/details/78004522
1)tf卷积函数
惯例先展示函数:
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)
除去name参数用以指定该操作的name,与方法有关的一共五个参数:
-
input:
指需要做卷积的输入图像,它要求是一个Tensor,具有[batch, in_height, in_width, in_channels]这样的shape,具体含义是[训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数],注意这是一个4维的Tensor,要求类型为float32和float64其中之一 -
filter:
相当于CNN中的卷积核,它要求是一个Tensor,具有[filter_height, filter_width, in_channels, out_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数],要求类型与参数input相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维 -
strides:卷积时在图像每一维的滑动步长,这是一个一维的向量,长度4
-
padding:
string类型的量,只能是”SAME”,”VALID”其中之一,这个值决定了不同的卷积方式(“SAME”允许卷积核停留在图像边缘,保证输入与输出大小相同;“valid”则卷积核不能停留在图像边缘,输出图像会变小,若输入5*5,使用3*3卷积核,则输出3*3) -
use_cudnn_on_gpu:
bool类型,是否使用cudnn加速,默认为true
结果返回一个Tensor,这个输出,就是我们常说的feature map。
2)tf最大值池化函数
tf.nn.max_pool(value, ksize, strides, padding, name=None)
参数是四个,和卷积很类似:
第一个参数value:需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是[batch, height, width, channels]这样的shape
第二个参数ksize:池化窗口的大小,取一个四维向量,一般是[1, height, width, 1],因为我们不想在
batch和
channels
上做池化,所以这两个维度设为了1
第三个参数strides:和卷积类似,窗口在每一个维度上滑动的步长,一般也是[1, stride,
stride
, 1]
第四个参数padding:和卷积类似,可以取‘VALID‘ 或者‘SAME‘
返回一个Tensor,类型不变,shape仍然是[batch, height, width, channels]
这种形式。
总结:卷积或池化后特征图谱的大小主要取决于滑动步长(strides)和padding(边距处理方式)。strides=1,padding=‘SAME’,则输入与输出大小相同;strides=2或padding=‘valid’都会使输出图像变小。
原文:http://www.cnblogs.com/xiaoxiong-kankan/p/8043452.html
内容总结
以上是互联网集市为您收集整理的卷积神经网络的理解全部内容,希望文章能够帮你解决卷积神经网络的理解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。