LeNet-5 论文及原理分析(笨鸟角度)
PS:要转载请注明出处,本人版权所有。
PS: 这个只是基于《我自己》的理解,
如果和你的原则及想法相冲突,请谅解,勿喷。
前置说明
本文作为本人csdn blog的主站的备份。(BlogID=047)
本文发布于 2017-12-15 11:32:12,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=047)
环境说明
无
前言
Notes:本人此前只对opencv处理图像有一定的了解。
从毕业后开始,自己工作的周围就出现了无数次计算机视觉相关的内容。而我的工作也和这些有一定的交叉。虽然在学校对并行计算以及AI有一定所闻,但是都只是听说而已,以为离我们还很远,出来才知道,它们已经来了。此文由网上众多Lenet-5相关的文章和论文原文经过我的组合和理解后写出,只作为我的一个学习笔记。
LeNet-5 分析
LeNet-5简介:
CNN里面的一篇代表性文章,主要是涵盖了现在CNN的卷积、池化、全连接等概念,同时其层数很浅,方便我学习。(这里主要基于LeNet5论文讲解,现在的caffe和tf上带的LeNet-5工程是和原文不同的,具体在后序两篇文章分析。)
LeNet-5网络简介
此截图来至于,LeNet-5论文原文。
主要由以下构成:
INPUT输入、C1卷积层、S2池化层((求和取平均)*w+b)、C3卷积层(此层是按照一定的规则卷积,所以不易理解,和C1,C5基本卷积操作不同)、S4池化层(S2类似)、C5卷积层、F6全连接映射的是一个字符表、OUTPUT打分输出(RBF)
结构分析:
Input层
size:32 * 32
C1层
卷积核(CC):5 * 5
stride:1
pad:0
featuremapcount:6
featuremapsize:28 * 28
(计算方法:32-5+1= 28)
(计算公式:O=(I+2 * pad-CC)/ stride+1)
参数个数:6 * (5 * 5+1)=156
连接个数:(5 * 5+1) * 28 * 28 * 6
(featuremap每个像素和5*5个w和一个b有一个连接。w是权重,b是偏置)
S2层
核:2*2
stride:2
featuremapcount:6
featuremapsize:14 * 14
(计算方法:28/2,对核进行求和,然后乘以w,加上一个偏置)
参数个数:(1+1) * 6=12
连接数:(4 * 1+1) * 14 * 14 * 6=5880
(不同的人有不同的理解,反正就是featuremap每个像素和上层的连线,这里是:4个像素求和平均乘以w加上一个b)
C3层
卷积核(CC):5 * 5
stride:1
pad:0
featuremapcount:16
(计算方法:下图每列对应一个featuremap,分为四组,0-5(分别和上层3个featuremap计算),6-11(同理),12-14(同理),15(同理)。)
featuremapsize:10 * 10
(14-5+1=10)
参数个数:6*(3 * 5 * 5+1)+6* (4* 5* 5+1)+3*(4 *5* 5+1)+1* (6* 5* 5+1)=1516(分组计算)
连接个数:1516* 10* 10=151600(同上)
S4层
核:2*2
stride:2
featuremapcount:16
featuremapsize:5 * 5
参数个数:(1+1) * 16=12(2018/9/28,感谢网友指正此处参数个数)
连接数:(4* 1+1)* 5* 5* 16=2000
C5层
卷积核(CC):5* 5
stride:1
pad:0
featuremapcount:120
featuremapsize:1* 1
参数个数:(5* 5* 16+1)* 120=48120
(此处由于每个像素都和前一层16个featuremap相连)
连接数:48120* 1* 1=48120
F6层
featuremapcount:84
(为了输出选的特定的数)
featuremapsize:1* 1
参数个数:84* (120* 1+1)=10164
(上层为1* 1,全连接,输出为84* 1* 1)
连接数:84*(120 * 1+1)* 1 * 1=10164
Output层
参数个数:84* 10=840
连接数:84* 10=840=840
说明:我只知道这个打分函数叫做RBF,具体就是计算输入和参数的向量距离,距离越近,就越有可能是当前数字。对于此函数的更深原理,我看了个大概,有兴趣的可以去研究。
后记
只要具备CNN基本理论知识(卷积核、步长、pad、池化、卷积、全连接)都可以慢慢的理解这个东西。由于我是新手,我知道新手对哪些很疑惑,所以对每一个值的计算我都有详细的写出,包括原理和出处。
参考文献
- 无
打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)
PS: 请尊重原创,不喜勿喷。
PS: 要转载请注明出处,本人版权所有。
PS: 有问题请留言,看到后我会第一时间回复。
LeNet-5 论文及原理分析(笨鸟角度)的更多相关文章
- Java程序员从笨鸟到菜鸟全部博客目录
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 大学上了一年半,接触java也一年半了,虽然中间也有其他东西的学习,但是还是以java为主 ...
- 《Java程序员由笨鸟到菜鸟》
<Java程序员由笨鸟到菜鸟> 在众多朋友的支持和鼓励下,<Java程序员由菜鸟到笨鸟>电子版终于和大家见面了.本电子书涵盖了从java基础到javaweb开放框架的大部分内容 ...
- Java程序猿从笨鸟到菜鸟之(九十二)深入java虚拟机(一)——java虚拟机底层结构具体解释
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在曾经的博客里面,我们介绍了在java领域中大部分的知识点,从最基础的java最基本的语法 ...
- Servlet过滤器介绍之原理分析
zhangjunhd 的BLOG 写留言去学院学习发消息 加友情链接进家园 加好友 博客统计信息 51CTO博客之星 用户名:zhangjunhd 文章数:110 评论数:858 访问量:19 ...
- Hadoop数据管理介绍及原理分析
Hadoop数据管理介绍及原理分析 最近2014大数据会议正如火如荼的进行着,Hadoop之父Doug Cutting也被邀参加,我有幸听了他的演讲并获得亲笔签名书一本,发现他竟然是左手写字,当然这个 ...
- 无线网络中的MIMO与OFDM技术原理分析
无线网络中的MIMO与OFDM技术原理分析CNET中国·ZOL 07年08月14日 [原创] 作者: 中关村在线 张伟 从最早的红外线技术到目前被寄予重望的WIFI,无线技术的进步推动我们的网络一步步 ...
- Handler系列之原理分析
上一节我们讲解了Handler的基本使用方法,也是平时大家用到的最多的使用方式.那么本节让我们来学习一下Handler的工作原理吧!!! 我们知道Android中我们只能在ui线程(主线程)更新ui信 ...
- Java NIO使用及原理分析(1-4)(转)
转载的原文章也找不到!从以下博客中找到http://blog.csdn.net/wuxianglong/article/details/6604817 转载自:李会军•宁静致远 最近由于工作关系要做一 ...
- 原子类java.util.concurrent.atomic.*原理分析
原子类java.util.concurrent.atomic.*原理分析 在并发编程下,原子操作类的应用可以说是无处不在的.为解决线程安全的读写提供了很大的便利. 原子类保证原子的两个关键的点就是:可 ...
- Android中Input型输入设备驱动原理分析(一)
转自:http://blog.csdn.net/eilianlau/article/details/6969361 话说Android中Event输入设备驱动原理分析还不如说Linux输入子系统呢,反 ...
随机推荐
- 由反射引出的Java动态代理与静态代理
写在开头 在<深入剖析Java中的反射,由浅入深,层层剥离!>这篇文章中我们讲反射时,曾提到过Java的动态代理中使用了反射技术,那么好,今天我们要就着反射的索引,来学习一下Java中的代 ...
- https、UDP的加密原理,其它传输层的同理
总结: 1.若应用需要使用http协议,那么就直接使用 https + 购买证书的方式. 2.若项目需要使用udp协议(浏览器不支持udp,所以只能是客户端软件包含APP),那么就需要将公钥内置在AP ...
- SP34020 ADAPET - Ada and Pet 题解
题目传送门 前置知识 前缀函数与 KMP 算法 解法 经检验 样例,我们发现 \(|S|k\) 并不是最优答案. 考虑利用 luogu P4391 [BOI2009] Radio Transmissi ...
- 【LGR-154-Div.4】洛谷入门赛 #15
[LGR-154-Div.4]洛谷入门赛 #15 \(A\) luoguB3813 [语言月赛 202308]四个人的排名加起来没有小粉兔高 AC 水题. #include<bits/stdc+ ...
- C#后端接收前端的参数
接收参数 1. 直接使用 [FromBody] 特性来告诉 ASP.NET Core 将请求的 JSON 数据反序列化为 实体类 对象 [FromBody] BlogNewsDTO实体类 点击查看代码 ...
- Linux中$home和波浪号~
在Linux中当前用户的主目录可以有三种表示方法,都是等效的[正常不改配置情况下]例如用户名为sy,进入当前用户的主目录/home/sy 输入cd ~ 或输入cd $HOME 或输入cd /home/ ...
- Java核心技术卷1:基础知识(原书第10版)
本书为专业程序员解决实际问题而写,Java基础知识面覆盖很完整,可以帮助你深入了解Java语言和库.在卷I中,Horstmann主要强调基本语言概念和现代用户界面编程基础,深入介绍了从Java面向对象 ...
- CSS实现图形效果
CSS实现图形效果 CSS实现正方形.长方形.圆形.半圆.椭圆.三角形.平行四边形.菱形.梯形.六角星.五角星.心形.消息框. 正方形 <section> <div id=" ...
- Linux上安装和部署git
本机环境: [git@rhel-server .ssh]$ cat /proc/version Linux version 2.6.32-358.el6.x86_64 1.安装 yum install ...
- Mac技巧之苹果电脑上将一个软件进程的 CPU 占用率限制在指定范围内:cputhrottle
苹果电脑 Mac OS X 系统上,我们可以用 cputhrottle 这个免费工具,配合活动监视器和终端,把一个软件进程的 CPU 占用率限制在指定值(比如 20%)以内,以防止应为它 " ...