(基于飞浆的)手写数字识别模型——数据处理

本文介绍了手写数字识别任务及其典型数据集MNIST,详细阐述了如何使用飞浆框架进行数据处理,包括数据集划分、样本乱序、批次生成以及数据有效性校验。
摘要由CSDN通过智能技术生成

1、背景知识

1.1 手写数字识别任务

我们知道,分类问题跟回归问题有明显的区别,回归问题是连续的数值,而分类问题是离散的类别,比如将性别分为[男,女],将图片分为[猫,狗,兔]等。数字识别是计算机从纸质文档、照片或其他来源接收、理解并识别可读的数字的能力,目前比较受关注的是手写数字识别,手写数字识别是一个典型的图像分类问题。

1.2 MNIST数据集

MNIST手写数字数据集包含60000张训练图片和10000张测试图片,这些图片是从0~9的手写数字,分辨率为28*28,大致是下面这个样子:
MNIST手写数字数据集在这里插入图片描述

2. 代码复现

2.1 类库导入

安装飞浆的环境,请参考https://www.paddlepaddle.org.cn/install/quick。在数据处理前,需要通过以下代码加载飞桨与手写数字识别模型相关的类库,实现方法如下:

import paddle
import paddle.fluid as fluid
from paddle.fluid.dygraph.nn import Linear
import numpy as np
import os
from PIL import Image

2.2 读入数据并划分数据集

在实际应用中,保存到本地的数据存储格式多种多样,如MNIST数据集以json格式存储在本地,data(数据集)中包含三个元素的列表:train_set、val_set、 test_set。
在本地目录下读取MNIST数据,并拆分成训练集、验证集和测试集,实现方法如下所示。

# 声明数据集文件位置,work目录下的mnist文件
datafile = './work/mnist.json.gz'
print('loading mnist dataset from {} ......'.format(datafile))
# 加载json数据文件
data = json.load(gzip.open(datafile))
print('mnist dataset load done')
# 读取到的数据区分训练集,验证集,测试集
train_set, val_set, eval_set 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值