作为Pytorch初学者,利用MNIST数据集作为基本数据集,使用Pytorch进行搭建模型训练。

MNIST数据集小,训练较容易。

训练数据集的长度为:60000
测试数据集的长度为:10000

1、方法一,线性连接层

一共五层网络,第一层输入7844,第二层520,第三层320,第四层240,第五层120,最后输出分类字符0——9共十种类,因此,最后一层为10.该方法 简单。线性连接,准确率低。

class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.l1 = nn.Linear(784, 520)self.l2 = nn.Linear(520, 320)self.l3 = nn.Linear(320, 240)self.l4 = nn.Linear(240, 120)self.l5 = nn.Linear(120, 10)def forward(self, x):x = x.view(-1, 784)  # flatten the data (n, 1, 28,28 )_-》(n,784)x = F.relu(self.l1(x))x = F.relu(self.l2(x))x = F.relu(self.l3(x))x = F.relu(self.l4(x))x = F.relu(self.l5(x))return x

该方法简单,容易实现。准确率不高,误差大。不建议用。不过用于方便理解。

Test  set: Average loss :0.0123,Accuracy:6824/10000(68%)

2、方法二,卷积神经CNN

class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.conv1 = nn.Sequential(nn.Conv2d(in_channels=1,  # size of input channelsout_channels=16,  # size of input channelskernel_size=(5, 5),  # size of filterstride=(1, 1),  # step of filterpadding=2,  # padding num),nn.ReLU(),nn.MaxPool2d(kernel_size=2),)self.conv2 = nn.Sequential(nn.Conv2d(16, 32, (5, 5), (1, 1), 2),nn.ReLU(),nn.MaxPool2d(2),)self.flat = nn.Flatten()  # flattern the resultself.out = nn.Linear(32 * 7 * 7, 10)def forward(self, x):x = self.conv1(x)x = self.conv2(x)x = self.flat(x)out = self.out(x)return out

该方法快速,准确度高。建议初学者多加练习。

Test  set: Average loss :0.0006,Accuracy:9859/10000(99%)

推荐使用这个进行初学练习。

手写字体识别MINST的两种方法相关推荐

  1. matlab文字bp识别,MNIST手写字体识别(CNN+BP两种实现)-Matlab程序

    [实例简介] MNIST手写字 Matlab程序,包含BP和CNN程序.不依赖任何库,包含MNIST数据,BP网络可达到98.3%的识别率,CNN可达到99%的识别率.CNN比较耗时,关于CNN的程序 ...

  2. android 手写字体识别,一种基于Android系统的手写数学公式识别及生成MathML的方法...

    专利名称:一种基于Android系统的手写数学公式识别及生成MathML的方法 技术领域: 本发明属于模式识别技术领域,涉及数学公式中字符间的空间结构分析,具体涉及一种基于Android系统的手写数学 ...

  3. AI基础:KNN与K近邻距离度量说明、利用KNN手写字体识别分类实践

    KNN k近邻 文章目录 KNN算法 K近邻中近邻的距离度量 欧式距离 标准化欧式距离 曼哈顿距离 汉明距离 夹角余弦 杰卡德相似系数 皮尔逊系数 切比雪夫距离 闵可夫斯基距离 马氏距离 巴氏距离 各 ...

  4. 第六讲 Keras实现手写字体识别分类

    一 本节课程介绍 1.1 知识点 1.图像识别分类相关介绍: 2.Mnist手写数据集介绍: 3.标准化数据预处理: 4.实验手写字体识别 二 课程内容 2.1 图像识别分类基本介绍 计算机的图像识别 ...

  5. 神经网络学习(二)Tensorflow-简单神经网络(全连接层神经网络)实现手写字体识别

    神经网络学习(二)神经网络-手写字体识别 框架:Tensorflow 1.10.0 数据集:mnist数据集 策略:交叉熵损失 优化:梯度下降 五个模块:拿数据.搭网络.求损失.优化损失.算准确率 一 ...

  6. MNIST手写字体识别入门编译过程遇到的问题及解决

    MNIST手写字体识别入门编译过程遇到的问题及解决 以MNIST手写字体识别作为神经网络及各种网络模型的作为练手,将遇到的问题在这里记录与交流. 激活tensorflow环境后,运行spyder或者j ...

  7. 深度学习,实现手写字体识别(大数据人工智能公司)

    手写字体识别是指给定一系列的手写字体图片以及对应的标签,构建模型进行学习,目标是对于一张新的手写字体图片能够自动识别出对应的文字或数字.通过深度学习构建普通神经网络和卷积神经网络,处理手写字体数据.通 ...

  8. PyTorch手写字体识别MNIST

    手写字体识别MNIST 1.准备工作 可以看这个老师的视频进行学习,讲解的非常仔细:视频学习 2.项目代码 2.1 导入模块 # 1.加载相关库 import torch import torch.n ...

  9. pytorch CNN手写字体识别

    ## """CNN手写字体识别"""import torch import torch.nn as nn from torch.autogr ...

最新文章

  1. word插入公式快捷键_用WORD写论文时好用到哭的技巧-插入公式
  2. 意外收获字节跳动内部资料,Android岗
  3. (转)mybatis一级缓存二级缓存
  4. WWW 2021 | 通过强化学习控制对话式检索的风险
  5. C++ NULL nullptr和0的区别
  6. c++对const增强 和cosnt分配内存情况
  7. java sftp mget_总结三种Shell脚本编程中避免SFTP输入密码的方法
  8. 心理学博士vs计算机博士,零基础跨专业考心理学博士,可以给我一些建议吗?...
  9. Springboot之actuator配置不当漏洞RCE(jolokia)
  10. 简单实用的人工智能自学路径
  11. 华为获 25 份 5G 合同;ofo 退款用户数超千万;贾跃亭躲豪宅拒收法律文书 | 极客头条...
  12. You have an error in your SQL syntax.....for the right syntax to use near 'describe
  13. python语言程序设计实践教程陈东实验八的答案_大学生C语言程序设计(第四版 谭洪强)实验8答案...
  14. CEIWEI CommMonitor 串口监控精灵v12.0 串口过滤;串口监控;Serial port monitor tools
  15. php如何大批量群发微信模板消息,如何用php实现发送微信模板消息呢?
  16. 生活中不可或缺的赚钱智慧
  17. 【自动升级后的错误】如何停止腾讯会议自动升级
  18. Android资源代码 源码 整理 Github开源项目下载地址
  19. 企业官网中的“农家老宅”和“精品房”区别在哪?
  20. 《SolidWorks 2014中文版机械设计从入门到精通》——1.4 操作环境设置

热门文章

  1. js 字符串转字节数组,字节数组转字符串(互转)
  2. O2O分享5:O2O的社会化营销(上)
  3. 新一轮融资惹外界热议 闪送能否担当即时配送领头羊重任?
  4. 初次买基金该怎样做?
  5. 靶机系列-----medium_socnet
  6. 重装系统(一):准备启动盘及镜像文件
  7. 思维能力必备三种流程图
  8. oracle技术交流群,编程人员必备QQ技术交流群,请选择你所需要的群吧……
  9. 机器人运动路径规划方法
  10. 数据结构【链式前向星】