版权声明:本文为博主原创文章,欢迎转载,并请注明出处。联系方式: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网络训练实现及比较(二)相同。

网络定义代码:

 1 #定义网络模型
 2 class LeNet(nn.Module):
 3     def __init__(self):
 4         super(LeNet, self).__init__()
 5
 6         self.cnn = nn.Sequential(
 7             #卷积层1,单通道输入,6个卷积核,核大小5*5
 8             #经过该层图像大小变为28-5+1,24*24
 9             #经2*2最大池化,图像变为12*12
10             nn.Conv2d(1, 6, 5),
11             nn.ReLU(),
12             nn.MaxPool2d(2),
13
14             #卷积层2,6通道,16个卷积核,核大小5*5
15             #经过该层图像变为12-5+1,8*8
16             # 经2*2最大池化,图像变为4*4
17             nn.Conv2d(6, 16, 5),
18             nn.ReLU(),
19             nn.MaxPool2d(2)
20         )
21
22         self.fc = nn.Sequential(
23             # 16个feature,每个feature4*4
24             nn.Linear(16 * 4 * 4, 120),
25             nn.ReLU(),
26             nn.Linear(120, 84),
27             nn.ReLU(),
28             nn.Linear(84, 10)
29         )
30
31     def forward(self, x):
32         x = self.cnn(x)
33         x = x.view(x.size()[0], -1)
34         x = self.fc(x)
35         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

损失函数值变化曲线为:

转载于:https://www.cnblogs.com/zhengbiqing/p/10408358.html

MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)...相关推荐

  1. 图像识别python cnn_MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(一)...

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 全连接神经网络是深度学习的基础,理解它就可以掌握深度学习的核心概念:前向传播.反向误差传递.权重.学习 ...

  2. Tensorflow【实战Google深度学习框架】全连接神经网络以及可视化

    文章目录 1 可视化 神经网络的二元分类效果 2 全连接神经网络 3 TensorFlow搭建一个全连接神经网络 3.1 读取MNIST数据 3.2 建立占位符 3.3 建立模型 3.4 正确率 3. ...

  3. 深度学习系列:全连接神经网络和BP算法

    前言 注:以后我的文章会写在个人博客网站上,本站文章也已被搬运.本文地址: https://xiaodongfan.com/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E ...

  4. 图像处理神经网络python_深度学习使用Python进行卷积神经网络的图像分类教程

    深度学习使用Python进行卷积神经网络的图像分类教程 好的,这次我将使用python编写如何使用卷积神经网络(CNN)进行图像分类.我希望你事先已经阅读并理解了卷积神经网络(CNN)的基本概念,这里 ...

  5. 深度学习笔记其五:卷积神经网络和PYTORCH

    深度学习笔记其五:卷积神经网络和PYTORCH 1. 从全连接层到卷积 1.1 不变性 1.2 多层感知机的限制 1.2.1 平移不变性 1.2.2 局部性 1.3 卷积 1.4 "沃尔多在 ...

  6. 【深度学习】(3) 全连接层、激活函数

    各位同学好,今天和大家分享一下tensorflow2.0深度学习中的相关操作.内容有: (1) 全连接层创建: tf.keras.Sequential(),tf.keras.layers.Dense( ...

  7. 【Python深度学习】Python全栈体系(三十五)

    深度学习 第十七章 图像分类概述 一.图像分类概述 1. 什么是图像分类? 图像分类就是将不同的图像划分到不同类别,实现最小分类误差.最高精度.手写体识别就是一个经典的图像分类问题,它将输入图像分为0 ...

  8. 深度学习笔记02——全连接层

    1. Fully connect 每一个activation function就是一个神经元.全连接层就是将每个神经元的输出都作为下一层所有神经元的输入. deep learning 就是有很多的hi ...

  9. 深度学习中多层全连接层的作用

    全连接层参数特多(可占整个网络参数80%左右) 那么全连接层对模型影响参数就是三个: 1,全接解层的总层数(长度) 2,单个全连接层的神经元数(宽度) 3,激活函数 首先我们要明白激活函数的作用是: ...

最新文章

  1. day09_读写分离_组件介绍
  2. MySQL 数据库利用alter语句修改表字段属性实例演示,如何拓展表字段长度,sql语句修改表字段名称和类型
  3. BMS开发日记 - One day
  4. c++异常处理机制示例及讲解
  5. 浏览器滚动条 --- 自定义“衣裳”
  6. php 前端模板 yii,php – Yii2高级模板:添加独立网页
  7. python里面Dataset干嘛的_用 Python 对成绩分类汇总!
  8. CentOS 5 全功能WWW服务器搭建全教程
  9. day68_淘淘商城项目_01
  10. 【Java 8实战】Extension Methods
  11. forEach(BiConsumer action)方法遍历Map集合
  12. 这篇文章里的代码的C#版本 (穿过已知点画平滑曲线(3次贝塞尔曲线)
  13. 1.9万亿美元市场,自动驾驶开发者向何处去?
  14. 计算机等级保护 备案,信息安全等级保护备案实施细则
  15. 雷达图使用攻略(上)
  16. 5.秒杀模块-基于redis缓存商品秒杀信息
  17. SSH Remote forwarding的示例
  18. 如何创建一个微信公众号(手把手、超详细)
  19. linux环境下随时照看服务器进程的ps和top命令
  20. CISCO学习笔记(四)Trunk功能及端口模式

热门文章

  1. php模块化安装教程,homestead安装php 扩展 教程
  2. nginx 和 uWISG 服务器之间如何配合工作的
  3. mybatis传set参数
  4. 一位大牛的JAVA学习资料
  5. 有哪些事,是你做了领导后才明白的?
  6. h5的横线_CSS文字两边添加横线的几种方法
  7. 2016校招腾讯研发岗笔试题---递归法求解格雷码
  8. 西门子SIMENS学习网站
  9. 使用GBDT+LR作点击率预测
  10. Kettle常用的配置文件