Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
c6b13984
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c6b13984
编写于
12月 07, 2016
作者:
D
dangqingqing
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of
https://github.com/baidu/Paddle
into cn_doc
上级
02c8a5a0
db379811
变更
9
展开全部
显示空白变更内容
内联
并排
Showing
9 changed file
with
254 addition
and
317 deletion
+254
-317
doc_cn/concepts/use_concepts.rst
doc_cn/concepts/use_concepts.rst
+4
-4
doc_cn/ui/data_provider/dataprovider.rst
doc_cn/ui/data_provider/dataprovider.rst
+13
-0
doc_cn/ui/data_provider/index.rst
doc_cn/ui/data_provider/index.rst
+0
-17
doc_cn/ui/data_provider/mnist_config.py
doc_cn/ui/data_provider/mnist_config.py
+1
-0
doc_cn/ui/data_provider/mnist_provider.py
doc_cn/ui/data_provider/mnist_provider.py
+0
-22
doc_cn/ui/data_provider/pydataprovider2.rst
doc_cn/ui/data_provider/pydataprovider2.rst
+227
-257
doc_cn/ui/data_provider/sentimental_provider.py
doc_cn/ui/data_provider/sentimental_provider.py
+6
-9
doc_cn/ui/data_provider/write_new_dataprovider.rst
doc_cn/ui/data_provider/write_new_dataprovider.rst
+0
-4
doc_cn/ui/index.rst
doc_cn/ui/index.rst
+3
-4
未找到文件。
doc_cn/concepts/use_concepts.rst
浏览文件 @
c6b13984
...
@@ -15,7 +15,7 @@ PaddlePaddle是一个深度学习框架,支持单机模式和多机模式。
...
@@ -15,7 +15,7 @@ PaddlePaddle是一个深度学习框架,支持单机模式和多机模式。
系统框图
系统框图
========
========
下图描述了用户使用框图,PaddlePaddle的trainer进程里内嵌了Python解释器,trainer进程可以利用这个解释器执行Python脚本,Python脚本里定义了模型配置、训练算法、以及数据读取函数。其中,数据读取程序往往定义在一个单独Python脚本文件里,被称为DataProvider,通常是一个Python函数。模型配置、训练算法通常定义在另一单独Python文件中。下面将分别介绍这两部分。
下图描述了用户使用框图,PaddlePaddle的trainer进程里内嵌了Python解释器,trainer进程可以利用这个解释器执行Python脚本,Python脚本里定义了模型配置、训练算法、以及数据读取函数。其中,数据读取程序往往定义在一个单独Python脚本文件里,被称为DataProvider,通常是一个Python函数。模型配置、训练算法通常定义在另一单独Python文件中
, 称为训练配置文件
。下面将分别介绍这两部分。
.. graphviz::
.. graphviz::
...
@@ -42,12 +42,12 @@ DataProvider是PaddlePaddle系统的数据提供器,将用户的原始数据
...
@@ -42,12 +42,12 @@ DataProvider是PaddlePaddle系统的数据提供器,将用户的原始数据
在不同的应用里,训练数据的格式往往各不相同。因此,为了用户能够灵活的处理数据,我们提供了Python处理数据的接口,称为 `PyDataProvider`_ 。在 ``PyDataProvider`` 中,系统C++模块接管了shuffle、处理batch、GPU和CPU通信、双缓冲、异步读取等问题,一些情况下(如:``min_pool_size=0``)需要Python接口里处理shuffle,可以参考 `PyDataProvider`_ 的相关文档继续深入了解。
在不同的应用里,训练数据的格式往往各不相同。因此,为了用户能够灵活的处理数据,我们提供了Python处理数据的接口,称为 `PyDataProvider`_ 。在 ``PyDataProvider`` 中,系统C++模块接管了shuffle、处理batch、GPU和CPU通信、双缓冲、异步读取等问题,一些情况下(如:``min_pool_size=0``)需要Python接口里处理shuffle,可以参考 `PyDataProvider`_ 的相关文档继续深入了解。
模型
配置文件
训练
配置文件
============
============
模型
配置文件主要包括数据传入接口定义(DataConfig)、优化算法(OptimizationConfig)、网络结构(ModelConfig)。 其中数据传入接口定义与DataProvider的关系是:DataProvider里定义数据读取函数,配置文件的DataConfig里指定DataProvider文件名字、生成数据函数接口,请不要混淆。
训练
配置文件主要包括数据传入接口定义(DataConfig)、优化算法(OptimizationConfig)、网络结构(ModelConfig)。 其中数据传入接口定义与DataProvider的关系是:DataProvider里定义数据读取函数,配置文件的DataConfig里指定DataProvider文件名字、生成数据函数接口,请不要混淆。
一个简单的
模型
配置文件为:
一个简单的
训练
配置文件为:
.. literalinclude:: trainer_config.py
.. literalinclude:: trainer_config.py
:linenos:
:linenos:
...
...
doc_cn/ui/data_provider/dataprovider.rst
0 → 100644
浏览文件 @
c6b13984
DataProvider的介绍
==================
DataProvider是PaddlePaddle负责提供数据的模块。其作用是将数据传入内存或显存,让神经网络可以进行训练或预测。用户可以通过简单使用Python接口 `PyDataProvider2 <pydataprovider2.html>`_ ,来自定义传数据的过程。如果有更复杂的使用,或者需要更高的效率,用户也可以在C++端自定义一个 ``DataProvider`` 。
PaddlePaddle需要用户在网络配置(trainer_config.py)中定义使用哪种DataProvider,并且在DataProvider中实现如何访问训练文件列表(train.list)或测试文件列表(test.list)。
- train.list和test.list存放在本地(推荐直接存放到训练目录,以相对路径引用)。一般情况下,两者均为纯文本文件,其中每一行对应一个数据文件地址:
- 如果数据文件存于本地磁盘,这个地址则为它的绝对路径或相对路径(相对于PaddlePaddle程序运行时的路径)。
- 地址也可以为hdfs文件路径,或者数据库连接路径等。
- 由于这个地址会被DataProvider使用,因此,如何解析该地址也是用户自定义DataProvider时需要考虑的地方。
- 如果没有设置test.list,或设置为None,那么在训练过程中不会执行测试操作;否则,会根据命令行参数指定的测试方式,在训练过程中进行测试,从而防止过拟合。
doc_cn/ui/data_provider/index.rst
已删除
100644 → 0
浏览文件 @
02c8a5a0
PaddlePaddle的数据提供(DataProvider)介绍
========================================
数据提供(DataProvider)是PaddlePaddle负责提供数据的模块。其作用是将训练数据传入内存或者显存,让神经网络可以进行训练。简单的使用,用户可以使用Python的 :code:`PyDataProvider` 来自定义传数据的过程。如果有更复杂的使用,或者需要更高的效率,用户也可以在C++端自定义一个 :code:`DataProvider` 。
PaddlePaddle需要用户在网络配置(trainer_config.py)中定义使用哪种DataProvider及其参数,训练文件列表(train.list)和测试文件列表(test.list)。
其中,train.list和test.list均为本地的两个文件(推荐直接放置到训练目录,以相对路径引用)。如果test.list不设置,或者设置为None,那么在训练过程中,不会执行测试操作。否则,会根据命令行参数指定的测试方式,在训练过程中进行测试,从而防止过拟合。
一般情况下,train.list和test.list为纯文本文件,一行对应一个数据文件,数据文件存放在本地磁盘中。将文件的绝对路径或相对路径(相对于PaddlePaddle程序运行时的路径)写在train.list和test.list中。当然,train.list和test.list也可以放置hdfs文件路径,或者数据库连接地址等等。
用户在DataProvider中需要实现如何访问其中每一个文件。DataProvider的具体用法和如何实现一个新的DataProvider,请参考下述文章:
.. toctree::
pydataprovider2.rst
write_new_dataprovider.rst
doc_cn/ui/data_provider/mnist_config.py
浏览文件 @
c6b13984
...
@@ -5,5 +5,6 @@ define_py_data_sources2(
...
@@ -5,5 +5,6 @@ define_py_data_sources2(
test_list
=
None
,
test_list
=
None
,
module
=
'mnist_provider'
,
module
=
'mnist_provider'
,
obj
=
'process'
)
obj
=
'process'
)
img
=
data_layer
(
name
=
'pixel'
,
size
=
784
)
img
=
data_layer
(
name
=
'pixel'
,
size
=
784
)
label
=
data_layer
(
name
=
'label'
,
size
=
10
)
label
=
data_layer
(
name
=
'label'
,
size
=
10
)
doc_cn/ui/data_provider/mnist_provider.py
已删除
100644 → 0
浏览文件 @
02c8a5a0
from
paddle.trainer.PyDataProvider2
import
*
# Define a py data provider
@
provider
(
input_types
=
[
dense_vector
(
28
*
28
),
integer_value
(
10
)])
def
process
(
settings
,
filename
):
# settings is not used currently.
f
=
open
(
filename
,
'r'
)
# open one of training file
for
line
in
f
:
# read each line
label
,
pixel
=
line
.
split
(
';'
)
# get features and label
pixels_str
=
pixel
.
split
(
' '
)
pixels_float
=
[]
for
each_pixel_str
in
pixels_str
:
pixels_float
.
append
(
float
(
each_pixel_str
))
# give data to paddle.
yield
pixels_float
,
int
(
label
)
f
.
close
()
# close file
doc_cn/ui/data_provider/pydataprovider2.rst
浏览文件 @
c6b13984
此差异已折叠。
点击以展开。
doc_cn/ui/data_provider/sentimental_provider.py
浏览文件 @
c6b13984
...
@@ -8,19 +8,16 @@ def on_init(settings, dictionary, **kwargs):
...
@@ -8,19 +8,16 @@ def on_init(settings, dictionary, **kwargs):
# set input types in runtime. It will do the same thing as
# set input types in runtime. It will do the same thing as
# @provider(input_types) will do, but it is set dynamically during runtime.
# @provider(input_types) will do, but it is set dynamically during runtime.
settings
.
input_types
=
[
settings
.
input_types
=
{
# The text is a sequence of integer values, and each value is a word id.
# The text is a sequence of integer values, and each value is a word id.
# The whole sequence is the sentences that we want to predict its
# The whole sequence is the sentences that we want to predict its
# sentimental.
# sentimental.
integer_value
(
'data'
:
integer_value_sequence
(
len
(
dictionary
)),
# text input
len
(
dictionary
),
seq_type
=
SequenceType
),
# text input
'label'
:
integer_value
(
2
)
# label positive/negative
}
# label positive/negative
# save dictionary as settings.dictionary.
integer_value
(
2
)
# It will be used in process method.
]
# save dictionary as settings.dictionary. It will be used in process
# method.
settings
.
dictionary
=
dictionary
settings
.
dictionary
=
dictionary
...
...
doc_cn/ui/data_provider/write_new_dataprovider.rst
已删除
100644 → 0
浏览文件 @
02c8a5a0
自定义一个DataProvider
====================
TBD
\ No newline at end of file
doc_cn/ui/index.rst
浏览文件 @
c6b13984
...
@@ -8,8 +8,8 @@
...
@@ -8,8 +8,8 @@
.. toctree::
.. toctree::
:maxdepth: 1
:maxdepth: 1
data_provider/
index
.rst
data_provider/
dataprovider
.rst
data_provider/pydataprovider2.rst
命令及命令行参数
命令及命令行参数
================
================
...
@@ -23,9 +23,8 @@
...
@@ -23,9 +23,8 @@
* `参数分类 <../../doc/ui/cmd_argument/argument_outline.html>`_
* `参数分类 <../../doc/ui/cmd_argument/argument_outline.html>`_
* `参数描述 <../../doc/ui/cmd_argument/detail_introduction.html>`_
* `参数描述 <../../doc/ui/cmd_argument/detail_introduction.html>`_
预测
预测
====
====
===
.. toctree::
.. toctree::
:maxdepth: 1
:maxdepth: 1
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录