update reader design

feature/design_of_v2_layer_converter
yi.wu 8 years ago
parent cb6cc5a934
commit 8bd6b749d0

@ -54,6 +54,7 @@ L' inflation accélérée , mesurée dans la zone euro , est due principale
```python ```python
reader = paddle.dist.reader("dataset-name") reader = paddle.dist.reader("dataset-name")
trainer.train(reader, ...)
batch_reader = paddle.batch(paddle.dataset.mnist.train(), 128) batch_reader = paddle.batch(paddle.dataset.mnist.train(), 128)
trainer.train(batch_reader, ...) trainer.train(batch_reader, ...)
``` ```
@ -69,6 +70,14 @@ def paddle.train(batch_reader):
这里面batch是含有128个data instance的mini-batch。每一个data instance会是一个tupletuple元素的顺序与`.list`文件文件中每一列的顺序是一致的。每一个data instance会是(raw_image_file_binary_data, label)。其中raw_image_file_binary_data是对应图像文件的没有解码的原始二进制数据用户需要自己解码。label是文本类型比如“1“”2“这里用户需要的其实是整形用户需要自己转换成整形。 这里面batch是含有128个data instance的mini-batch。每一个data instance会是一个tupletuple元素的顺序与`.list`文件文件中每一列的顺序是一致的。每一个data instance会是(raw_image_file_binary_data, label)。其中raw_image_file_binary_data是对应图像文件的没有解码的原始二进制数据用户需要自己解码。label是文本类型比如“1“”2“这里用户需要的其实是整形用户需要自己转换成整形。
### 实现reader
reader的实现需要考虑本地训练程序实现之后可以不修改程序直接提交集群进行分布式训练。要达到这样的目标需要实现下面的功能
paddle会实现内置的默认reader和对公开数据集的reader(如MNISTBOW等)。这些内置的reader都会被一个`paddle.reader`修饰器修饰。这个修饰器会读取环境变量`PADDLE_TRAIN_LOCAL`如果是True则返回只有一个文件的task queue生成器这个文件就是reader传入的文件。如果是False则为分布式训练模式在集群中训练的任务都会从这个环境变量获得False值开始读取task queue获取分布式存储系统中的文件名数据并返回这个task queue。不同的reader的实现都要遵守固定的方式从task queue生成器中逐个获取文件名完成对不同训练数据的解析。
同样用户在实现自己的reader时也需要使用此修饰器来修饰reader函数。
## TODO ## TODO
### 支持将数据合并成内部的文件格式(key-value)方便sharding与顺序读取 ### 支持将数据合并成内部的文件格式(key-value)方便sharding与顺序读取

Loading…
Cancel
Save