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. Mac上利用VScode配置c/c++开发环境

    Mac上利用VScode配置c/c++开发环境 哭辽,Typora里面最好不要插入表情,不然保存会闪退 首先你要有一个vscode 在扩展里面下载c/c++ 第一步 ⬆+com+p 打开命令模式:选择 ...

  2. UVA122 二叉树的层次遍历

    题目链接 https://vjudge.net/problem/UVA-122 #include<bits/stdc++.h> using namespace std; #define l ...

  3. BZOJ-2424: [HAOI2010]订货【费用流】

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1487  Solved: 1002[Submit][Status][Discuss] Descript ...

  4. numpy学习(二)

    练习篇(Part 2) 11. Create a 3x3 identity matrix (★☆☆) arr = np.eye(3) print(arr) 运行结果:[[1. 0. 0.] [0. 1 ...

  5. How to do high impact research + 实事求是

    1. develop a strong publications record early, so do what you can to make that happen. 2. 粗读:abstrac ...

  6. 让Surface Shader不受光照的明暗影响

    直接上码 Shader "Custom/3DVideo" { Properties { _Color (,,,) _MainTex ("Albedo (RGB)" ...

  7. AE开发常见问题总结

    一. Arcgis10.0 组件初始化失败解决方法: ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.EngineOrDe ...

  8. 使用TensorFlow训练模型的基本流程

    本文已在公众号机器视觉与算法建模发布,转载请联系我. 使用TensorFlow的基本流程 本篇文章将介绍使用tensorflow的训练模型的基本流程,包括制作读取TFRecord,训练和保存模型,读取 ...

  9. 07 部署fastDFS文件数据库

    安装fastDFS前必须准备好两个版本匹配的文件: libfastcommon_V1.0.7.tar.gz:基础库文件 FastDFS_V5.05.tar.gz:文件数据库文件 注:这两个文件版本要匹 ...

  10. 【C语言】思维导图

    长按图片或右键另存为保存哦(´-ω-`)