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 ...
随机推荐
- .Net Excel 导出图表Demo(柱状图,多标签页)
1 使用插件名称Epplus,多个Sheet页数据应用,Demo为柱状图(Epplus支持多种图表) 2 Epplus 的安装和引用 新建一个工程文件或控制台应用程序 打开 Vs2017 Tools ...
- X级联动
前端数据 @{ ViewBag.Title = "Index"; } <script src="~/Scripts/jquery-1.10.2.js"&g ...
- 记录一下这次web实训的两个网站
先是做的一个天猫的部分首页,接着过了一周左右开始做京东的一个商品详情页. 从天猫到京东,从不敢做到开始不断突破自己,从代码量的堆积中汲取经验.收获真的很大,也学习到了很多,还有很多要学的,继续加油吧~ ...
- JavaScript是如何工作的: Web推送通知的机制
摘要: 如何在Web端推送消息? 这是专门探索 JavaScript 及其所构建的组件的系列文章的第9篇. 如果你错过了前面的章节,可以在这里找到它们: JavaScript是如何工作的:引擎,运行时 ...
- H5页面的高度宽度100%
解决方案1: 设置如下:html,body{ min-height:100vh; background-color:#fff; }这样高度首先不会写死,而且满足最小高度是满屏 解决方案2: 可以用vh ...
- AEAI HR薪资汇总功能介绍
1 概述 人力资源系统是一个公司重要的管理工具,而薪资管理是人力资源管理系统中最为核心的功能模块,它包括不同员工的薪资标准.薪资的组成部分,例如:对奖惩管理.保险和年假等员工必备的福利待遇进行统一管理 ...
- [外包]!采用asp.net core 快速构建小型创业公司后台管理系统(六.结语)
到这里就结束了,真的结束了,源码会在文末分享! 另外录了两个视频,对这个系统进行了演示! 做有意义的事情,原此生无悔! 视频地址:使用asp.net core 快速构建权限管理模块1 使用asp.ne ...
- MongoDB MapReduce用法简介
Map-Reduce部分:Map-Reduce相当于关系型数据库中的group by,主要用于统计数据之用.MongoDB提供的Map-Reduce非常灵活,对于大规模数据分析也相当实用. 语法 db ...
- 一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析
下面是我们在使用AlwaysOn过程中遇到的一个切换案例.这个案例发生在2014年8月,虽然时间相对久远了,但是对我们学习理解AlwaysOn的FailOver原理和过程还是很有帮助的.本次FailO ...
- python实例二
https://www.cnblogs.com/evablogs/p/6754974.html 题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于 ...