深度学习入门(二)

系列文章目录
第一章 深度学习入门——Paddle环境的搭建



前言

接下俩两篇文章我们将通过代码给大家一一介绍Paddle框架常用API,使大家更快更好的学习使用Paddle。


一、数据集的定义与加载

众所周知深度学习模型需要大量的数据来完成训练和评估,这些数据样本可能是图片(image)、文本(text)、语音(audio)等多种类型,而模型训练过程实际是数学计算过程,因此数据样本在送入模型前需要经过一系列处理,如转换数据格式、划分数据集、变换数据形状(shape)、制作数据迭代读取器以备分批训练等。

Paddle框架针对不同的需求已经帮我们封装好了相关API。

 1.1直接加载数据集

对于一些经典的数据集,我们可以直接调用paddle.vision.datasets, paddle.textpaddle.vision.datasets,加载内置数据集。

接下来我们看一下Paddle框架都有哪些内置数据集。

import paddle
print('计算机视觉(CV)相关数据集:', paddle.vision.datasets.__all__)
print('自然语言处理(NLP)相关数据集:', paddle.text.__all__)

 以MNIST为例我们来实现一下,如何直接调用内置数据集。

train_dataset = paddle.vision.datasets.MNIST(mode='train')
test_dataset = paddle.vision.datasets.MNIST(mode='test')
#内置的MNIST数据集已经划分好数据集,通过model传入的字符来区分

 

 1.2 自定义数据集的读取 

 paddle.io.DataLoader API 对数据集进行多进程的读取,并且可自动完成划分 batch 的工作。

 

train_loader = paddle.io.DataLoader(train_custom_dataset, batch_size=64, shuffle=True, num_workers=1, drop_last=True)
# 通过上述方法,初始化了一个数据读取器 train_loader,用于加载训练数据集 custom_dataset。在数据读取器中几个常用的字段如下:

#batch_size:每批次读取样本数,示例中 batch_size=64 表示每批次读取 64 个样本。

#shuffle:样本乱序,示例中 shuffle=True 表示在取数据时打乱样本顺序,以减少过拟合发生的可能。

#drop_last:丢弃不完整的批次样本,示例中 drop_last=True 表示丢弃因数据集样本数不能被 batch_size 整除而产生的最后一个不完整的 batch 样本。

#num_workers:同步/异步读取数据,通过 num_workers 来设置加载数据的子进程个数,num_workers的值设为大于0时,即开启多进程方式异步加载数据,可提升数据读取速度。#

 当然了读取数据集的方法各种各样,paddle只是提供了一个相对说简单方便的,在深度了解之后大家可以选择自己喜欢的方式

二、数据预处理

我们采集的数据不会全都是我们想要的,会存在各种各样的问题,如数据不一致、存在缺失值、噪声数据等。因此在进行正式的训练之前,我们需要数据集进行处理,解决上述问题。

好的预处理会使我们训练出来的模型训练更快、精准度更高,特别对于过拟合问题,预处理是解决此问题的重要方法。

接下来我们以图像数据为例来看一下paddle如何简单实现数据预处理。

我们先来看一下,paddle都内置了哪些图像数据处理方法

import paddle
print('图像数据处理方法:', paddle.vision.transforms.__all__)

 这些方法我们既可以单独使用也可以组合使用,使用方法如下

单独使用:

from paddle.vision.transforms import Resize

# 定义一个待使用的数据处理方法,这里定义了一个调整图像大小的方法
transform = Resize(size=28)

组合使用:

通过Compose函数组合起来

from paddle.vision.transforms import Compose, RandomRotation

# 定义待使用的数据处理方法,这里包括随机旋转、改变图片大小两个组合处理
transform = Compose([RandomRotation(10), Resize(size=32)])

 


总结

这一篇我们先介绍这几种,下篇我们介绍模型组网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值