MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)
版权声明:本文为博主原创文章,欢迎转载,并请注明出处。联系方式:460356155@qq.com
在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(一)、MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(二)中,采用全连接神经网络(784-300-10),分别用非深度学习框架和基于pytorch实现,训练结果相当。
这里采用卷积神经网络(CNN)中著名的LeNet-5网络来训练,除了网络定义部分外,其他代码基本和MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(二)相同。
网络定义代码:
#定义网络模型
class LeNet(nn.Module):
def __init__(self):
super(LeNet, self).__init__() self.cnn = nn.Sequential(
#卷积层1,单通道输入,6个卷积核,核大小5*5
#经过该层图像大小变为28-5+1,24*24
#经2*2最大池化,图像变为12*12
nn.Conv2d(1, 6, 5),
nn.ReLU(),
nn.MaxPool2d(2), #卷积层2,6通道,16个卷积核,核大小5*5
#经过该层图像变为12-5+1,8*8
# 经2*2最大池化,图像变为4*4
nn.Conv2d(6, 16, 5),
nn.ReLU(),
nn.MaxPool2d(2)
) self.fc = nn.Sequential(
# 16个feature,每个feature4*4
nn.Linear(16 * 4 * 4, 120),
nn.ReLU(),
nn.Linear(120, 84),
nn.ReLU(),
nn.Linear(84, 10)
) def forward(self, x):
x = self.cnn(x)
x = x.view(x.size()[0], -1)
x = self.fc(x)
return x
网络训练结果准确率约在99%,LeNet-5比前面的全连接神经网络高1.x%。运行结果如下:
train data num: 60000 , test data num: 10000
epoch:0 i:999 loss:0.11399480700492859
epoch:0 i:1999 loss:0.1237913966178894
epoch:0 i:2999 loss:0.12948277592658997
EPOCH:0, ACC:97.5
epoch:1 i:999 loss:0.006639003753662109
epoch:1 i:1999 loss:0.0011253952980041504
epoch:1 i:2999 loss:0.03325369954109192
EPOCH:1, ACC:98.35
epoch:2 i:999 loss:0.0021111369132995605
epoch:2 i:1999 loss:0.2714851200580597
epoch:2 i:2999 loss:0.0016380250453948975
EPOCH:2, ACC:98.64
epoch:3 i:999 loss:0.00033468008041381836
epoch:3 i:1999 loss:0.05128034949302673
epoch:3 i:2999 loss:0.1222798228263855
EPOCH:3, ACC:98.65
epoch:4 i:999 loss:0.0006810426712036133
epoch:4 i:1999 loss:0.002728283405303955
epoch:4 i:2999 loss:0.000545889139175415
EPOCH:4, ACC:98.89
epoch:5 i:999 loss:0.006086885929107666
epoch:5 i:1999 loss:0.07402010262012482
epoch:5 i:2999 loss:0.03638958930969238
EPOCH:5, ACC:98.93
epoch:6 i:999 loss:0.0002015829086303711
epoch:6 i:1999 loss:0.0004933476448059082
epoch:6 i:2999 loss:0.03196592628955841
EPOCH:6, ACC:99.02
epoch:7 i:999 loss:0.01734447479248047
epoch:7 i:1999 loss:2.9087066650390625e-05
epoch:7 i:2999 loss:0.018512487411499023
EPOCH:7, ACC:98.73
epoch:8 i:999 loss:4.70280647277832e-05
epoch:8 i:1999 loss:0.008362054824829102
epoch:8 i:2999 loss:2.9206275939941406e-06
EPOCH:8, ACC:98.84
epoch:9 i:999 loss:0.00012737512588500977
epoch:9 i:1999 loss:0.00020432472229003906
epoch:9 i:2999 loss:0.00022774934768676758
EPOCH:9, ACC:99.1
MINIST pytorch LeNet-5 Train: EPOCH:10, BATCH_SZ:16, LR:0.05
train spend time: 0:01:05.897404
损失函数值变化曲线为:

MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)的更多相关文章
- 【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络GoogLeNet
前面讲了LeNet.AlexNet和Vgg,这周来讲讲GoogLeNet.GoogLeNet是由google的Christian Szegedy等人在2014年的论文<Going Deeper ...
- 【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络AlexNet
上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...
- 【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络Vgg
上周我们讲了经典CNN网络AlexNet对图像分类的效果,2014年,在AlexNet出来的两年后,牛津大学提出了Vgg网络,并在ILSVRC 2014中的classification项目的比赛中取得 ...
- 深度学习tensorflow实战笔记(1)全连接神经网络(FCN)训练自己的数据(从txt文件中读取)
1.准备数据 把数据放进txt文件中(数据量大的话,就写一段程序自己把数据自动的写入txt文件中,任何语言都能实现),数据之间用逗号隔开,最后一列标注数据的标签(用于分类),比如0,1.每一行表示一个 ...
- tensorflow中使用mnist数据集训练全连接神经网络-学习笔记
tensorflow中使用mnist数据集训练全连接神经网络 ——学习曹健老师“人工智能实践:tensorflow笔记”的学习笔记, 感谢曹老师 前期准备:mnist数据集下载,并存入data目录: ...
- TensorFlow之DNN(二):全连接神经网络的加速技巧(Xavier初始化、Adam、Batch Norm、学习率衰减与梯度截断)
在上一篇博客<TensorFlow之DNN(一):构建“裸机版”全连接神经网络>中,我整理了一个用TensorFlow实现的简单全连接神经网络模型,没有运用加速技巧(小批量梯度下降不算哦) ...
- TensorFlow之DNN(一):构建“裸机版”全连接神经网络
博客断更了一周,干啥去了?想做个聊天机器人出来,去看教程了,然后大受打击,哭着回来补TensorFlow和自然语言处理的基础了.本来如意算盘打得挺响,作为一个初学者,直接看项目(不是指MINIST手写 ...
- SIGAI深度学习第八集 卷积神经网络2
讲授Lenet.Alexnet.VGGNet.GoogLeNet等经典的卷积神经网络.Inception模块.小尺度卷积核.1x1卷积核.使用反卷积实现卷积层可视化等. 大纲: LeNet网络 Ale ...
- TensorFlow 2.0 深度学习实战 —— 浅谈卷积神经网络 CNN
前言 上一章为大家介绍过深度学习的基础和多层感知机 MLP 的应用,本章开始将深入讲解卷积神经网络的实用场景.卷积神经网络 CNN(Convolutional Neural Networks,Conv ...
随机推荐
- vs2017安装pygame,vs2017安装python第三方包
vs2017有独立的python环境:所以想在vs2017开发python并使用第三方包,需要在vs2017中操作,完成第三方包的安装. 一,查看vs2017有哪些版本的python,当前使用的是哪个 ...
- TiDB
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb.其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB ...
- input框限制只能输入正整数、字母、小数、
这篇博文大部分来自于网上,为了方便自己查阅,以及帮助他人. 1,只能输入正整数 <input onkeyup="if(this.value.length==1){this.valu ...
- 20, CSS 定义选择器
1. ID 与类 2. 层叠 3. 分组 4. 继承 5. 上下文选择器 6. 子类选择器 7. 其他选择器 8. 结构与注释 20.1 ID 与类 选择器是用于控制页面设计的样式.即 ID 选择器何 ...
- [HTML/CSS]colum-gap属性
属性定义及使用说明 column-gap的属性指定的列之间的差距. 注意: 如果指定了列之间的距离规则,它会取平均值. 语法 column-gap: length|normal; 值 描述 l ...
- Http 压测工具 wrk 基本使用
Http 压测工具 wrk 基本使用 Intro wrk 是一款现代HTTP基准测试工具,能够在单个多核CPU上运行时产生显着负载.它将多线程设计与可扩展事件通知系统(如epoll和kqueue)结合 ...
- 章节九、4-ChromDriver介绍
一.首先下载Chrom浏览器驱动,将驱动解压到存放火狐浏览器驱动文件路径中(请观看前面的章节) 1.进入该网址下载匹配本地浏览器版本的驱动 http://chromedriver.storage.go ...
- PJSIP 自动化测试工具安装 Python安装
Python安装,记录步骤如下 1.下载PythonIDE安装包 到官网 https://repo.continuum.io/archive/下载需要的版本,选择的Anaconda版本3的,当然也可以 ...
- django源码分析 python manage.py runserver
django是一个快速开发web应用的框架, 笔者也在django框架上开发不少web应用,闲来无事,就想探究一下django底层到底是如何实现的,本文记录了笔者对django源码的分析过程 I be ...
- MongoDB 3.6版本关于bind_ip设置
2017年下半年新发布的MongoDB 3.6版本在安全性上做了很大提升,主要归结为两点: 1.将将bind_ip 默认值修改为了localhost: 2. 在db.createUser()和 db. ...