Lenet 神经网络结构为:
①输入为 32*32*1 的图片大小,为单通道的输入;
②进行卷积,卷积核大小为 5*5*1,个数为 6,步长为 1,非全零填充模式;
③将卷积结果通过非线性激活函数;
④进行池化,池化大小为 2*2,步长为 1,全零填充模式;
⑤进行卷积,卷积核大小为 5*5*6,个数为 16,步长为 1,非全零填充模式;
⑥将卷积结果通过非线性激活函数;
⑦进行池化,池化大小为 2*2,步长为 1,全零填充模式;
⑧全连接层进行 10 分类。
Lenet 神经网络的结构图及特征提取过程如下所示:

Lenet 神经网络的输入是 32*32*1,经过 5*5*1 的卷积核,卷积核个数为 6 个,采用非全零填充方式,步长为 1,根据非全零填充计算公式:输出尺寸=(输入尺寸-卷积核尺寸+1)/步长=(32-5+1)/1=28.

故经过卷积后输出为 28*28*6。

经过第一层池化层,池化大小为 2*2,全零填充,步长为 2,由全零填充计算公式:输出尺寸=输入尺寸/步长=28/2=14,池化层不改变深度,深度仍为 6。

用同样计算方法,得到第二层池化后的输出为 5*5*16。

将第二池化层后的输出拉直送入全连接层。

根据 Lenet 神经网络的结构可得,Lenet 神经网络具有如下特点:
①卷积(Conv)、池化(ave-pooling)、非线性激活函数(sigmoid)相互交替;
②层与层之间稀疏连接,减少计算复杂度。

对 Lenet 神经网络进行微调,使其适应 Mnist 数据集:
由于 Mnist 数据集中图片大小为 28*28*1 的灰度图片,而 Lenet 神经网络的输入为 32*32*1,故需要对 Lenet 神经网络进行微调。(微调是如何进行调整?整个网络的对接是如何进行?后面博客继续学习)
①输入为 28*28*1 的图片大小,为单通道的输入;
②进行卷积,卷积核大小为 5*5*1,个数为 32,步长为 1,全零填充模式;
③将卷积结果通过非线性激活函数;
④进行池化,池化大小为 2*2,步长为 2,全零填充模式;
⑤进行卷积,卷积核大小为 5*5*32,个数为 64,步长为 1,全零填充模式;
⑥将卷积结果通过非线性激活函数;
⑦进行池化,池化大小为 2*2,步长为 2,全零填充模式;
⑧全连接层,进行 10 分类。
Lenet 进行微调后的结构如下所示:

前面第五、六讲中,输入mnist数据集是28*28像素,输出是长度为10的一维数组;

现在运用Lennet神经网络

图片大小即每张图片分辨率为 28*28,故 IMAGE_SIZE 取值为 28;

Mnist 数据集为灰度图,故输入图片通道数 NUM_CHANNELS 取值为 1;

第一层卷积核大小为 5,卷积核个数为 32,故 CONV1_SIZE 取值为 5,CONV1_KERNEL_NUM 取值为 32;

第二层卷积核大小为 5,卷积核个数为 64,故 CONV2_SIZE 取值为 5, CONV2_KERNEL_NUM为 64;

全连接层第一层为 512 个神经元,FC_SIZE 取值为 512,

全连接层第二层为 10 个神经元,OUTPUT_NODE 取值为 10,实现 10 分类输出。

注:本文章通过观看北京大学曹健老师的Tensorflow视频,笔记总结而来的。

Lenet 神经网络-实现篇(1)的更多相关文章

  1. Lenet 神经网络-实现篇(2)

    Lenet 神经网络在 Mnist 数据集上的实现,主要分为三个部分:前向传播过程(mnist_lenet5_forward.py).反向传播过程(mnist_lenet5_backword.py). ...

  2. Pytorch1.0入门实战一:LeNet神经网络实现 MNIST手写数字识别

    记得第一次接触手写数字识别数据集还在学习TensorFlow,各种sess.run(),头都绕晕了.自从接触pytorch以来,一直想写点什么.曾经在2017年5月,Andrej Karpathy发表 ...

  3. 【原创 深度学习与TensorFlow 动手实践系列 - 4】第四课:卷积神经网络 - 高级篇

    [原创 深度学习与TensorFlow 动手实践系列 - 4]第四课:卷积神经网络 - 高级篇 提纲: 1. AlexNet:现代神经网络起源 2. VGG:AlexNet增强版 3. GoogleN ...

  4. 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇

    [原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...

  5. TensorFlow 实战卷积神经网络之 LeNet

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! LeNet 项目简介 1994 年深度学习三巨头之一的 Yan L ...

  6. 单层感知机_线性神经网络_BP神经网络

    单层感知机 单层感知机基础总结很详细的博客 关于单层感知机的视频 最终y=t,说明经过训练预测值和真实值一致.下面图是sign函数 根据感知机规则实现的上述题目的代码 import numpy as ...

  7. Paper/ Overview | CNN(未完待续)

    目录 I. 基础知识 II. 早期尝试 1. Neocognitron, 1980 2. LeCun, 1989 A. 概况 B. Feature maps & Weight sharing ...

  8. 人工智能系统Google开源的TensorFlow官方文档中文版

    人工智能系统Google开源的TensorFlow官方文档中文版 2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源,机器学习作为人工智能的一种类型,可以让软件根据大量的 ...

  9. Tensorflow高速入门2--实现手写数字识别

    Tensorflow高速入门2–实现手写数字识别 环境: 虚拟机ubuntun16.0.4 Tensorflow 版本号:0.12.0(仅使用cpu下) Tensorflow安装见: http://b ...

随机推荐

  1. ContestHunter 1201 最大子序和

    描述 输入一个长度为n的整数序列,从中找出一段不超过m的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m=4时,S=5+1-2+3=7当m=2或m=3时,S=5+1=6 输入 ...

  2. 安装SQL Server2008出现Restart computer failed的解决办法

    1.打开注册表编辑器 2.找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager双击文件夹 3.找到PendingF ...

  3. jfinal 拦截器中判断是否为pjax请求

    个人博客 地址:http://www.wenhaofan.com/article/20180926013919 public class PjaxInterceptor implements Inte ...

  4. Mac下Charles的安装和配置

    一.安装与破解 官网下载,破解方法参考其他,此处略 二.配置 1.电脑端安装 Charles 的根证书 注意:此时钥匙串默认为不信任,需设置为始终信任 2.配置代理:勾选enable transpre ...

  5. AntDesign(React)学习-2 第一个页面

    1.前面创建了第一个项目jgdemo,结构如下,使用TypeScript. 2.yarn start启动项目 3.点击GettingStarted是umi的官方网站 https://umijs.org ...

  6. 高通量计算框架HTCondor(六)——拾遗

    目录 1. 正文 1.1. 一些问题 1.2. 使用建议 2. 相关 1. 正文 1.1. 一些问题 如果真正要将HTCondor高通量计算产品化还需要很多工作要做,HTCondor并没有GUI界面, ...

  7. springboot静态资源

    https://blog.csdn.net/yali_aini/article/details/83213695 https://blog.csdn.net/sihai12345/article/de ...

  8. 批量启动关闭MS SQL 2005服务BAT

    当装上了MSSQL2005后,内存的占用会变得很大.所以如果用一个批量处理来开启或关闭MSSQL2005所有的服务,那将会让我们的电脑更好使用.根据自己的经验,做出了下面两个批处理: 1.开启服务:( ...

  9. iOS13禁用深色模式

    全局禁用深色模式(暗黑模式)在Info.plist中增加UIUserInterfaceStyle,值为Light,如下 <key>UIUserInterfaceStyle</key& ...

  10. D0 设计模式

    单一职责 一个类只负责一个功能领域中的相应职责.,就一个类而言,应该只有一个引起它变化的原因. 单一职责原则告诉我们: 一个类不能太"累"! 在软件系统中, 一个类( 大到模块, ...