- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
卷积神经网络全面之代码详解资料
HYPERLINK /view/6b0d951d49649b6649d74750 \o 卷积神经网络全面解析(3) \t _blank 卷积神经网络全面解析之代码详解
本文介绍多层感知机算法,特别是详细解读其代码实现,基于python theano,代码来自: HYPERLINK /tutorial/lenet.html \l lenet \t _blank Convolutional Neural Networks (LeNet)。
一、CNN卷积神经网络原理简介
要讲明白卷积神经网络,估计得长篇大论,网上有很多博文已经写得很好了,所以本文就不重复了,如果你了解CNN,那可以往下看,本文主要是详细地解读CNN的实现代码。
CNN的最大特点就是稀疏连接(局部感受)和权值共享,如下面两图所示,左为稀疏连接,右为权值共享。稀疏连接和权值共享可以减少所要训练的参数,减少计算复杂度。
? ? ? ?
至于CNN的结构,以经典的LeNet5来说明:
这个图真是无处不在,一谈CNN,必说LeNet5,这图来自于这篇论文: HYPERLINK /exdb/publis/pdf/lecun-98.pdf \t _blank Gradient-Based Learning Applied to Document Recognition,论文很长,第7页那里开始讲LeNet5这个结构,建议看看那部分。
我这里简单说一下,LeNet5这张图从左到右,先是input,这是输入层,即输入的图片。input-layer到C1这部分就是一个卷积层(convolution运算),C1到S2是一个子采样层(pooling运算),关于卷积和子采样的具体过程可以参考下图:
然后,S2到C3又是卷积,C3到S4又是子采样,可以发现,卷积和子采样都是成对出现的,卷积后面一般跟着子采样。S4到C5之间是全连接的,这就相当于一个MLP的隐含层了(如果你不清楚MLP,参考《 HYPERLINK /u012162613/article/details\t _blank DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解》)。C5到F6同样是全连接,也是相当于一个MLP的隐含层。最后从F6到输出output,其实就是一个分类器,这一层就叫分类层。
ok,CNN的基本结构大概就是这样,由输入、卷积层、子采样层、全连接层、分类层、输出这些基本“构件”组成,一般根据具体的应用或者问题,去确定要多少卷积层和子采样层、采用什么分类器。当确定好了结构以后,如何求解层与层之间的连接参数?一般采用向前传播(FP)+向后传播(BP)的方法来训练。具体可参考上面给出的链接。
二、CNN卷积神经网络代码详细解读(基于python+theano)
代码来自于深度学习教程: HYPERLINK /tutorial/lenet.html \l lenet \t _blank Convolutional Neural Networks (LeNet),这个代码实现的是一个简化了的LeNet5,具体如下:
没有实现location-specific gain and bias parameters
用的是maxpooling,而不是average_pooling
分类器用的是softmax,LeNet5用的是rbf
LeNet5第二层并不是全连接的,本程序实现的是全连接
另外,代码里将卷积层和子采用层合在一起,定义为“LeNetConvPoolLayer“(卷积采样层),这好理解,因为它们总是成对出现。但是有个地方需要注意,代码中将卷积后的输出直接作为子采样层的输入,而没有加偏置b再通过sigmoid函数进行映射,即没有了下图中fx后面的bx以及sigmoid映射,也即直接由fx得到Cx。
最后,代码中第一个卷积层用的卷积核有20个,第二个卷积层用50个,而不是上面那张LeNet5图中所示的6个和16个。
了解了这些,下面看代码:
(1)导入必要的模块
import cPickle
import gzip
import os
import sys
import time
import numpy
import theano
import theano.tensor as T
from theano.tensor.signal import downsample
from theano.tensor.nnet import conv
(2)定义CNN的基本构件
CNN的基本构件包括卷积采样层、隐含层、分类器,如下
定义LeNetConvPoolLayer(卷积+采样层)
见代码注释:
卷积+下采样合成一个层LeNetConvP
您可能关注的文档
- 医学免疫学总复习资料资料.ppt
- 医学免疫学第五章抗原讲义资料.ppt
- 医学免疫学第八章MHC讲义资料.ppt
- 医学免疫学第六版4_抗体资料.ppt
- 医学分子生物学(第三版)光盘习题及答案(包括选择题)资料.docx
- 医学分子生物学-DNA的生物合成-coco资料.ppt
- 医学分子生物学-上课用-11.DNA损伤修复和基因突变资料.ppt
- 医学分子生物学-上课用-12.基因诊断资料.ppt
- 医学分子生物学-上课用-11.疾病产生的分子基础资料.ppt
- 医学分子生物学-上课用-15蛋白质生物合成资料.ppt
- 2025年上海交通投资(集团)有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案.docx
- 2025年上海交运股份有限公司校园招聘模拟试题附答案.docx
- 2025年地质勘探和地震专用仪器项目可行性研究方案.docx
- 2025年上海交通投资(集团)有限公司校园招聘模拟试题a4版.docx
- 2025年上海交通投资(集团)有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案.docx
- 2025年上海交通投资(集团)有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案.docx
- 2025年上海交运股份有限公司校园招聘模拟试题附带答案详解新版.docx
- 2025年上海交运股份有限公司校园招聘模拟试题附带答案详解带答案.docx
- 2025年上海交通投资(集团)有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案.docx
- 2025年上海交运股份有限公司校园招聘模拟试题附带答案详解学生专用.docx
最近下载
- IEC 61730-1 2023 最新版中文标准.doc
- 论融资管理中存在问题与对策以格力电器为例_.docx
- 配置管理程序(ISO20000-1:2018).docx VIP
- 德国柏曼年品牌策划.ppt
- 《内科护理》4第四节 糖尿病病人的护理 教学课件.ppt VIP
- 云南白药股份有限公司财务报表分析.doc VIP
- APPROACHES AND METHODS IN LANGUAGE TEACHING教师专业发展.pdf
- 生鲜农产品冷链物流配送中心选址研究——以西安市为例.docx
- 陕西专升本英语3500词汇与高频词组.pdf VIP
- 2025年海南省公务员省考《行测》真题(含答案).pdf VIP
文档评论(0)