Python Reader
在模型训练和预测阶段,PaddlePaddle程序需要读取训练或预测数据。为了帮助用户编写数据读取的代码,我们提供了如下接口:
reader: 用于读取数据的函数,数据可来自于文件、网络、随机数生成器等,函数每次返回一个数据项。
reader creator: 接受一个或多个reader作为参数、返回一个新reader的函数。
reader decorator: 一个函数,接受一个或多个reader,并返回一个reader。
batch reader: 用于读取数据的函数,数据可来自于文件、网络、随机数生成器等,函数每次返回一个batch大小的数据项。
此外,还提供了将reader转换为batch reader的函数,会频繁用到reader creator和reader decorator。
Data Reader 接口
Data reader不一定要求为读取和遍历数据项的函数。它可以是返回iterable对象(即可以用于for x in iterable的任意对象)的任意不带参数的函数:
iterable=data_reader()
Iterable对象应产生单项或tuple形式的数据,而不是一个mini batch的数据。产生的数据项应在支持的类型 中,例如float32,int类型的numpy一维矩阵,int类型的列表等。
以下是实现单项数据reader creator的示例:
defreader_creator_random_image(width,height):
defreader():
whileTrue:
yieldnumpy.random.uniform(-1