卷积神经网络全面解析之代码详细讲解.doc

卷积神经网络全面解析之代码详细讲解.doc

ID:48433936

大小:194.24 KB

页数:24页

时间:2020-01-26

卷积神经网络全面解析之代码详细讲解.doc_第1页
卷积神经网络全面解析之代码详细讲解.doc_第2页
卷积神经网络全面解析之代码详细讲解.doc_第3页
卷积神经网络全面解析之代码详细讲解.doc_第4页
卷积神经网络全面解析之代码详细讲解.doc_第5页
资源描述:

《卷积神经网络全面解析之代码详细讲解.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.word格式.卷积神经网络全面解析之代码详解本文介绍多层感知机算法,特别是详细解读其代码实现,基于pythontheano,代码来自:ConvolutionalNeuralNetworks(LeNet)。一、CNN卷积神经网络原理简介要讲明白卷积神经网络,估计得长篇大论,网上有很多博文已经写得很好了,所以本文就不重复了,如果你了解CNN,那可以往下看,本文主要是详细地解读CNN的实现代码。CNN的最大特点就是稀疏连接(局部感受)和权值共享,如下面两图所示,左为稀疏连接,右为权值共享。稀疏连接和权值共享可以减少所

2、要训练的参数,减少计算复杂度。    至于CNN的结构,以经典的LeNet5来说明:.专业.专注..word格式.这个图真是无处不在,一谈CNN,必说LeNet5,这图来自于这篇论文:Gradient-BasedLearningAppliedtoDocumentRecognition,论文很长,第7页那里开始讲LeNet5这个结构,建议看看那部分。我这里简单说一下,LeNet5这张图从左到右,先是input,这是输入层,即输入的图片。input-layer到C1这部分就是一个卷积层(convolution运算),

3、C1到S2是一个子采样层(pooling运算),关于卷积和子采样的具体过程可以参考下图:然后,S2到C3又是卷积,C3到S4又是子采样,可以发现,卷积和子采样都是成对出现的,卷积后面一般跟着子采样。S4到C5之间是全连接的,这就相当于一个MLP的隐含层了(如果你不清楚MLP,参考《DeepLearningtutorial(3)MLP多层感知机原理简介+代码详解》)。C5到F6同样是全连接,也是相当于一个MLP的隐含层。最后从F6到输出output,其实就是一个分类器,这一层就叫分类层。ok,CNN的基本结构大概就

4、是这样,由输入、卷积层、子采样层、全连接层、分类层、输出这些基本“构件”组成.专业.专注..word格式.,一般根据具体的应用或者问题,去确定要多少卷积层和子采样层、采用什么分类器。当确定好了结构以后,如何求解层与层之间的连接参数?一般采用向前传播(FP)+向后传播(BP)的方法来训练。具体可参考上面给出的链接。二、CNN卷积神经网络代码详细解读(基于python+theano)代码来自于深度学习教程:ConvolutionalNeuralNetworks(LeNet),这个代码实现的是一个简化了的LeNet5,

5、具体如下:·没有实现location-specificgainandbiasparameters·用的是maxpooling,而不是average_pooling·分类器用的是softmax,LeNet5用的是rbf·LeNet5第二层并不是全连接的,本程序实现的是全连接另外,代码里将卷积层和子采用层合在一起,定义为“LeNetConvPoolLayer“(卷积采样层),这好理解,因为它们总是成对出现。但是有个地方需要注意,代码中将卷积后的输出直接作为子采样层的输入,而没有加偏置b再通过sigmoid函数进行映射

6、,即没有了下图中fx后面的bx以及sigmoid映射,也即直接由fx得到Cx。最后,代码中第一个卷积层用的卷积核有20个,第二个卷积层用50个,而不是上面那张LeNet5图中所示的6个和16个。了解了这些,下面看代码:(1)导入必要的模块.专业.专注..word格式.importcPickleimportgzipimportosimportsysimporttimeimportnumpyimporttheanoimporttheano.tensorasTfromtheano.tensor.signalimport

7、downsamplefromtheano.tensor.nnetimportconv(2)定义CNN的基本"构件"CNN的基本构件包括卷积采样层、隐含层、分类器,如下·定义LeNetConvPoolLayer(卷积+采样层)见代码注释:"""卷积+下采样合成一个层LeNetConvPoolLayerrng:随机数生成器,用于初始化Winput:4维的向量,theano.tensor.dtensor4filter_shape:(numberoffilters,numinputfeaturemaps,filterhe

8、ight,filterwidth)image_shape:(batchsize,numinputfeaturemaps,imageheight,imagewidth)poolsize:(#rows,#cols).专业.专注..word格式."""classLeNetConvPoolLayer(object):def__init__(self,rng,input,filte

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。