手写数字识别mnist
手写数字识别mnist
文章目录
- 手写数字识别mnist
- 一、前言
- 二、环境配置
- 三、代码如下
- 四、配置环境过程
- 1、打开Anaconda Prompt
- a、创建一个叫MNIST4的环境
- b、创建成功后激活环境并下载keras包:
- c、下载matplotlib包
- d、下载tensorflow包
- 2、打开Pycharm配置
- 五、运行程序
一、前言
在实现手写数字识别的时候,我看到csdn上检索的手写数字识别有一些繁杂,可是作为AL世界的Hello World,这是不合理的,代码本来就不复杂。
繁杂的操作和图片有点让人生畏,所以我决定有必要重写一下程序、记录一下过程。
下面是一些国内的pip源,有需要可自取
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
二、环境配置
软件:ANACONDA3+Pycharm2019
keras>=2.7;
tensorflow>=1.7
注:一定关掉科学上网
三、代码如下
#第一步:加载keras中的mnist集
from keras.datasets import mnist
(train_images, train_labels),(test_images, test_labels) = mnist.load_data()print(train_images.shape)#查看效果的,这两步可以忽略
print(test_images.shape)#第二步:建立网络架构,
from keras import models
from keras import layers
#层layer就像数据处理的筛子
#本例子含有两个Dense层,最后是一个10路的激活层softmax层,返回一个由10个概率值组成的数组,表示10个数字类别中某一个的概率
network=models.Sequential()
network.add(layers.Dense(512,activation='relu',input_shape=(28*28,)))
network.add(layers.Dense(10,activation='softmax'))#第三步:编译
#optimizer 优化器,loss损失函数,metrics代码级数据监控
network.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])#第四步:准备图像数据和标签
train_images = train_images.reshape((60000, 28 * 28))#图像处理
train_images = train_images.astype('float32') / 255
test_images = test_images.reshape((10000, 28 * 28))
test_images = test_images.astype('float32') / 255#通过二维关系矩阵的方式,生成一个对应关系
from keras.utils.all_utils import to_categorical
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)#第五步:拟合(FIT)模型
network.fit(train_images,train_labels,batch_size=64,epochs=5)#第六步:评估(EVALUATE)模型
test_loss,test_acc=network.evaluate(test_images,test_labels)#第七步:查看测试集的精度
print('test_acc',test_acc)
#训练精度和测试精度之间的这种差距是过拟合(overfit)造成的
以下是跑通这个程序的过程。如果清楚这些步骤的过程可以略过下面
四、配置环境过程
1、打开Anaconda Prompt
a、创建一个叫MNIST4的环境
conda create -n MNIST4 python=3.8
注:记得python=3.8,大了就下载不了tensorflow包了
b、创建成功后激活环境并下载keras包:
conda activate MNIST4
为了提高下载速度,在国内清华源中下载keras包
pip install keras -i https://pypi.tuna.tsinghua.edu.cn/simple/
c、下载matplotlib包
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple/
d、下载tensorflow包
pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/
2、打开Pycharm配置
配置代码运行环境
注:这里刷新出来的时候比较长,需要等等
之后一路点击确认下去
五、运行程序
将开头的程序copy进pycharm的程序中
这样就训练成功了。
手写数字识别mnist相关推荐
- GAN变种ACGAN利用手写数字识别mnist生成手写数字
1.摘要 本文主要讲解:GAN变种ACGAN利用手写数字识别mnist数据集进行训练,最终生成手写数字图片 主要思路: Initialize generator and discriminator I ...
- Pytorch实战1:LeNet手写数字识别 (MNIST数据集)
版权说明:此文章为本人原创内容,转载请注明出处,谢谢合作! Pytorch实战1:LeNet手写数字识别 (MNIST数据集) 实验环境: Pytorch 0.4.0 torchvision 0.2. ...
- Keras搭建CNN(手写数字识别Mnist)
MNIST数据集是手写数字识别通用的数据集,其中的数据是以二进制的形式保存的,每个数字是由28*28的矩阵表示的. 我们使用卷积神经网络对这些手写数字进行识别,步骤大致为: 导入库和模块 我们导入Se ...
- Python 手写数字识别 MNIST数据集下载失败
目录 一.MNIST数据集下载失败 1 失败的解决办法(经验教训): 2 亲测有效的解决方法: 一.MNIST数据集下载失败 场景复现:想要pytorch+MINIST数据集来实现手写数字识别,首先就 ...
- 使用Pytorch实现手写数字识别(Mnist数据集)
目标 知道如何使用Pytorch完成神经网络的构建 知道Pytorch中激活函数的使用方法 知道Pytorch中torchvision.transforms中常见图形处理函数的使用 知道如何训练模型和 ...
- tensorflow实现手写数字识别(MNIST)
手写数字图片数字集 机器学习需要从数据中间学习,因此首先需要采集大量的真实样本数据.以手写的数字图片识别为例,我们需要收集大量的由真人书写的0-9的数字图片,为了便于存储和计算,一般把收集 ...
- keras库的安装及使用,以全连接层和手写数字识别MNIST为例
1.什么是keras 什么是keras? keras以TensorFlow和Theano作为后端封装,是一个专门用于深度学习的python模块. 包含了全连接层,卷积层,池化层,循环层,嵌入层等等等, ...
- 手写数字识别MNIST数据集下载百度网盘链接快速下载
介绍 MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片. 下载 官方链接:http://ya ...
- linux手写数字识别,mnist手写数字识别与图片预处理
用户mnist训练了一个模型,想用自己的图片进行测试,需要将自己的图片进行预处理为mnist需要的1*784的二维张量. 因为MNIST数据是28*28的黑底白字图像,而且输入时要将其拉直,也就是可以 ...
- 莫烦keras学习代码二(手写数字识别MNIST classifier CNN版)
知道了CNN的原理,同样是只要将之前用tensorflow写的几个建立网络的函数用keras的更简单的方法替换就行. 训练结果: 用Sequential().add()添加想要的层,添加卷积层就用Co ...
最新文章
- javascript-XMLHttpRequest
- 使用JMeter压力测试
- 前端学习(1742):前端调试值之快速调试和修改
- c++用new求数组中n个数的和_在C++中实现任意大小数组的定义方法
- Linux报错:/etc/sudoers is world writable
- clipse中Access restriction: The type ‘XXX’ is not API 解决
- Null对象模式的用法
- 【C#】WM 消息大全
- 使用ROW_NUMBER()查询:列名 'RowNumber' 无效。
- Java实现八大排序算法【九千字超详解】
- flutter-学习之发布安卓包APK
- 周鸿祎:人人需要Mentor,世界没有奇迹
- shell获取脚本本身名称_linux,shell脚本中获取脚本的名字,使用脚本的名字。
- python tkinter Entry的使用
- 【专题】经典DP问题(上)
- [转]自信过头是狂妄,谦虚过度是虚伪
- 环境配置 | 更改注册表使PPT导出的图片分辨率达到300dpi
- 推荐一个基于 Vue 的前端界面可视化设计器项目
- CocosCreater的俄罗斯方块游戏实现
- 看了诺奖得主的故事,我只说五个字:狂野酷姐姐