index.rst 1.6 KB
Newer Older
1
PaddlePaddle的数据提供(DataProvider)介绍
Z
zhangjinchao01 已提交
2 3
==================================

4
数据提供(DataProvider,后用DataProvider代替)是PaddlePaddle负责提供数据的模块。其作用是将训练数据
Z
zhangjinchao01 已提交
5 6 7 8
传入内存或者显存,让神经网络可以进行训练。简单的使用,用户可以使用Python的
:code:`PyDataProvider` 来自定义传数据的过程。如果有更复杂的使用,或者需要更高的效率,
用户也可以在C++端自定义一个 :code:`DataProvider` 。

9
PaddlePaddle需要用户在网络配置(trainer_config.py)中定义使用什么DataProvider,和DataProvider
Z
zhangjinchao01 已提交
10 11 12 13 14 15 16
的一些参数,训练文件列表(train.list)和测试文件列表(test.list)。

其中,train.list和test.list均为本地的两个文件(推荐直接放置到训练目录,以相对路径引用)。如果
test.list不设置,或者设置为None的话,那么在训练过程中,不会执行测试操作。否则,则会根据命令行
参数指定的测试方式,在训练过程中进行测试,从而防止过拟合。

一般情况下,train.list和test.list为纯文本文件,其每一行对应这每一个数据文件。数据文件存放在
17
本地磁盘中,将文件的绝对路径或相对路径(相对于PaddlePaddle程序运行时的路径)的方式写在train.list和
Z
zhangjinchao01 已提交
18 19 20 21 22 23 24 25 26
test.list中。当然,train.list和test.list也可以放置hdfs文件路径,或者数据库连接地址等等。
用户在DataProvider中需要实现如何访问其中每一个文件。

DataProvider的具体用法和如何实现一个新的DataProvider,请参考下述文章:

..	toctree::

	pydataprovider2.rst
	write_new_dataprovider.rst