# PaddleRec 自定义数据集及Reader ## 数据集及reader配置简介 以`ctr-dnn`模型举例: ```yaml reader: batch_size: 2 class: "{workspace}/../criteo_reader.py" train_data_path: "{workspace}/data/train" reader_debug_mode: False ``` 有以上4个需要重点关注的配置选项: - batch_size: 网络进行小批量训练的一组数据的大小 - class: 指定数据处理及读取的`reader` python文件 - train_data_path: 训练数据所在地址 - reader_debug_mode: 测试reader语法,及输出是否符合预期的debug模式的开关 ## 自定义数据集 PaddleRec支持模型自定义数据集,在model.config.yaml文件中的reader部分,通过`train_data_path`指定数据读取路径。 关于数据的tips - PaddleRec 面向的是推荐与搜索领域,数据以文本格式为主 - Dataset模式支持读取文本数据压缩后的`.gz`格式 - Dataset模式下,训练线程与数据读取线程的关系强相关,为了多线程充分利用,`强烈建议将文件拆成多个小文件`,尤其是在分布式训练场景下,可以均衡各个节点的数据量。 ## 自定义Reader 数据集准备就绪后,需要适当修改或重写一个新的reader以适配数据集或新组网。 我们以`ctr-dnn`网络举例`reader`的正确打开方式,网络文件位于`models/rank/dnn`。 ### Criteo数据集格式 CTR-DNN训练及测试数据集选用[Display Advertising Challenge](https://www.kaggle.com/c/criteo-display-ad-challenge/)所用的Criteo数据集。该数据集包括两部分:训练集和测试集。训练集包含一段时间内Criteo的部分流量,测试集则对应训练数据后一天的广告点击流量。 每一行数据格式如下所示: ```bash