背景信息
PaddlePaddle中预集成了多种数据集,充分了解这些数据集的组成和类型,可以便于以后自己创建数据集。在这里主要对MNIST数据集和波士顿房价两个数据集进行了分析,如下先给出分析结果,最后再给出分析过程中使用的代码。
结论
- 在PaddlePaddle中reader是一个Generator函数
- reader的回调结果是一个Generator,在PaddlePaddle中就是数据集;而Generator是一个可迭代对象,每次迭代就返回数据集中的一条数据。可以这么理解,Reader的回调结果是一张表(数据集),对其迭代可以逐条返回表中的记录(一条样本数据,一般包含数据与标签)。
- 对Generator的迭代返回结果即每条样本数据的类型为元组
- 每条样本中的数据部分为数组
- 每条样本中的标签部分可能为数组或整型数据等。
MNIST数据集分析
paddle.dataset.mnist.train() import paddle.v2 as paddle uci_reader_creator =paddle.dataset.mnist.train() print "uci_mnist.train()的类型为" + str(type(uci_reader_creator)) uci_reader = uci_reader_creator() print "uci_mnist.train()回调结果的类型为" + str(type(uci_reader)) step = 0 for item in uci_reader: # print "一条样本数据及其标签:" + str(item) print "每条样本数据的类型为" + str(type(item)) print "一条样本中数据的类型为" + str(type(item[0])) print "一条样本中标签的类型为" + str(type(item[1])) step = step +1 if step >= 1: break
波士顿房价数据集分析
import paddle.v2 as paddle uci_reader_creator = paddle.dataset.uci_housing.train() print "uci_housing.train()的类型为" + str(type(uci_reader_creator)) uci_reader = uci_reader_creator() print "uci_housing.train()回调结果的类型为" + str(type(uci_reader)) step = 0 for item in uci_reader: print "一条样本数据及其标签:" + str(item) print "每条样本数据的类型为" + str(type(item)) print "一条样本中数据的类型为" + str(type(item[0])) print "一条样本中标签的类型为" + str(type(item[1])) step = step +1 if step >= 1: break