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网络训练实现及比较(二)相同。
网络定义代码:
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网络训练实现及比较(三)...相关推荐
- 图像识别python cnn_MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(一)...
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 全连接神经网络是深度学习的基础,理解它就可以掌握深度学习的核心概念:前向传播.反向误差传递.权重.学习 ...
- Tensorflow【实战Google深度学习框架】全连接神经网络以及可视化
文章目录 1 可视化 神经网络的二元分类效果 2 全连接神经网络 3 TensorFlow搭建一个全连接神经网络 3.1 读取MNIST数据 3.2 建立占位符 3.3 建立模型 3.4 正确率 3. ...
- 深度学习系列:全连接神经网络和BP算法
前言 注:以后我的文章会写在个人博客网站上,本站文章也已被搬运.本文地址: https://xiaodongfan.com/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E ...
- 图像处理神经网络python_深度学习使用Python进行卷积神经网络的图像分类教程
深度学习使用Python进行卷积神经网络的图像分类教程 好的,这次我将使用python编写如何使用卷积神经网络(CNN)进行图像分类.我希望你事先已经阅读并理解了卷积神经网络(CNN)的基本概念,这里 ...
- 深度学习笔记其五:卷积神经网络和PYTORCH
深度学习笔记其五:卷积神经网络和PYTORCH 1. 从全连接层到卷积 1.1 不变性 1.2 多层感知机的限制 1.2.1 平移不变性 1.2.2 局部性 1.3 卷积 1.4 "沃尔多在 ...
- 【深度学习】(3) 全连接层、激活函数
各位同学好,今天和大家分享一下tensorflow2.0深度学习中的相关操作.内容有: (1) 全连接层创建: tf.keras.Sequential(),tf.keras.layers.Dense( ...
- 【Python深度学习】Python全栈体系(三十五)
深度学习 第十七章 图像分类概述 一.图像分类概述 1. 什么是图像分类? 图像分类就是将不同的图像划分到不同类别,实现最小分类误差.最高精度.手写体识别就是一个经典的图像分类问题,它将输入图像分为0 ...
- 深度学习笔记02——全连接层
1. Fully connect 每一个activation function就是一个神经元.全连接层就是将每个神经元的输出都作为下一层所有神经元的输入. deep learning 就是有很多的hi ...
- 深度学习中多层全连接层的作用
全连接层参数特多(可占整个网络参数80%左右) 那么全连接层对模型影响参数就是三个: 1,全接解层的总层数(长度) 2,单个全连接层的神经元数(宽度) 3,激活函数 首先我们要明白激活函数的作用是: ...
最新文章
- day09_读写分离_组件介绍
- MySQL 数据库利用alter语句修改表字段属性实例演示,如何拓展表字段长度,sql语句修改表字段名称和类型
- BMS开发日记 - One day
- c++异常处理机制示例及讲解
- 浏览器滚动条 --- 自定义“衣裳”
- php 前端模板 yii,php – Yii2高级模板:添加独立网页
- python里面Dataset干嘛的_用 Python 对成绩分类汇总!
- CentOS 5 全功能WWW服务器搭建全教程
- day68_淘淘商城项目_01
- 【Java 8实战】Extension Methods
- forEach(BiConsumer action)方法遍历Map集合
- 这篇文章里的代码的C#版本 (穿过已知点画平滑曲线(3次贝塞尔曲线)
- 1.9万亿美元市场,自动驾驶开发者向何处去?
- 计算机等级保护 备案,信息安全等级保护备案实施细则
- 雷达图使用攻略(上)
- 5.秒杀模块-基于redis缓存商品秒杀信息
- SSH Remote forwarding的示例
- 如何创建一个微信公众号(手把手、超详细)
- linux环境下随时照看服务器进程的ps和top命令
- CISCO学习笔记(四)Trunk功能及端口模式