在训练和测试时,PaddlePaddle需要读取数据。为了简化用户编写数据读取代码的工作,我们定义了
- reader是一个读取数据(从文件、网络、随机数生成器等)并生成数据项的函数。
- reader creator是返回reader的函数。
- reader decorator是一个函数,它接受一个或多个reader,并返回一个reader。
- batch reader是一个函数,它读取数据(从reader、文件、网络、随机数生成器等)并生成一批数据项。
paddle.reader.buffered(reader, size)
创建缓冲数据读取器。
缓冲数据reader将读取数据条目并将其保存到缓冲区中。只要缓冲区不为空,就将继续从缓冲数据读取器读取数据。
参数
返回 缓冲数据的读取器
- reader (callable) - 要读取的数据读取器
- size (int) - 最大缓冲
paddle.fluid.io.shuffle(reader, buffer_size)
【python|打造paddle数据读器Data reader取全流程【划桨员的自我修养【paddle学习笔记】】】该接口创建一个数据读取器,其功能是将原始数据读取器的数据打乱,然后返回无序的数据。
从原始数据读取器取出buf_size个数据到缓冲区,将缓冲区数据打乱,然后将无序的数据依次返回。当缓冲区数据全部输出后,再次执行上述步骤。
参数:
返回:返回无序数据的数据读取器
- reader (callable) – 原始数据读取器。
- buf_size (int) – 缓冲区保存数据的个数。
代码案例
写一个cifar-10数据集的数据读取器,并执行乱序,分批次读取,打印第一个batch数据的shape、类型信息。
import paddle
import numpy as npcifar10_reader = paddle.batch(paddle.dataset.cifar.train10(), batch_size=10)
cifar10_train_reader = paddle.reader.shuffle(cifar10_reader, 20)for id_batch, data_batch in enumerate(cifar10_train_reader()):
data = https://www.it610.com/article/np.array([x[0] for x in data_batch]).astype('float32')
label = np.array([x[1] for x in data_batch]).astype('float32')print("image data shape:",data.shape, data[2])
print("label data shape:",label.shape, label[2])
break
print("32*32*3=",32*32*3) # weight*height*channel 3
# cifar 10种类别图片
paddle.dataset.cifar.train10(cycle=False)
CIFAR-10训练数据集的creator。
它返回一个reader creator, reader中的每个样本的图像像素范围是[0,1],标签范围是[0,9]。
参数
返回
- cycle (bool) – 是否循环使用数据集
训练数据集的reader creator
返回类型 callable
推荐阅读
- 人脸识别|【人脸识别系列】| 实现自动化妆
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- paddle|动手从头实现LSTM
- pytorch|使用pytorch从头实现多层LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- 历史上的今天|【历史上的今天】2 月 16 日(世界上第一个 BBS 诞生;中国计算机教育开端;IBM 机器人赢得智能竞赛)