Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
b7d58fa0
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
8
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b7d58fa0
编写于
3月 01, 2019
作者:
H
Hao Wang
提交者:
Cheerego
3月 01, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update cn api to 1.3 (#663)
* Update cn api to 1.3 fluid & layers * Rest to 1.3
上级
12cf426d
变更
6
展开全部
隐藏空白更改
内联
并排
Showing
6 changed file
with
639 addition
and
164 deletion
+639
-164
doc/fluid/api_cn/clip_cn.rst
doc/fluid/api_cn/clip_cn.rst
+3
-3
doc/fluid/api_cn/executor_cn.rst
doc/fluid/api_cn/executor_cn.rst
+37
-11
doc/fluid/api_cn/fluid_cn.rst
doc/fluid/api_cn/fluid_cn.rst
+149
-20
doc/fluid/api_cn/layers_cn.rst
doc/fluid/api_cn/layers_cn.rst
+441
-123
doc/fluid/api_cn/optimizer_cn.rst
doc/fluid/api_cn/optimizer_cn.rst
+7
-5
doc/fluid/api_cn/profiler_cn.rst
doc/fluid/api_cn/profiler_cn.rst
+2
-2
未找到文件。
doc/fluid/api_cn/clip_cn.rst
浏览文件 @
b7d58fa0
...
...
@@ -16,13 +16,13 @@ ErrorClipByValue
给定一个张量 ``t`` ,该操作将它的值压缩到 ``min`` 和 ``max`` 之间
- 任何小于
最小值的值都被设置为最小值
- 任何小于
min(最小值)的值都被设置为min
- 任何大于max的值都被设置为max
- 任何大于max
(最大值)
的值都被设置为max
参数:
- **max** (foat) - 要修剪的最大值。
- **min** (float) - 要修剪的最小值。如果用户没有设置,将被
``framework``
设置为 ``-max``
- **min** (float) - 要修剪的最小值。如果用户没有设置,将被
框架默认
设置为 ``-max``
**代码示例**
...
...
doc/fluid/api_cn/executor_cn.rst
浏览文件 @
b7d58fa0
...
...
@@ -15,6 +15,8 @@ Executor
执行引擎(Executor)使用python脚本驱动,仅支持在单GPU环境下运行。多卡环境下请参考 ``ParallelExecutor`` 。
Python Executor可以接收传入的program,并根据feed map(输入映射表)和fetch_list(结果获取表)
向program中添加feed operators(数据输入算子)和fetch operators(结果获取算子)。
...
...
@@ -28,12 +30,38 @@ Executor将全局变量存储到全局作用域中,并为临时变量创建局
program中所有的算子会按顺序执行。
**示例代码**
.. code-block:: python
# 新建一个执行引擎Executor名为exe。
place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()
exe = fluid.Executor(place)
# 仅运行一次startup program.
# 不需要优化/编译这个startup program.
exe.run(fluid.default_startup_program())
# 无需编译,直接运行main program
loss, = exe.run(fluid.default_main_program(),
feed=feed_dict,
fetch_list=[loss.name])
# 另一种方法是,编译这个main program然后运行. 参考CompiledProgram
compiled_prog = compiler.CompiledProgram(
fluid.default_main_program()).with_data_parallel(
loss_name=loss.name)
loss, = exe.run(compiled_prog,
feed=feed_dict,
fetch_list=[loss.name])
参数:
- **place** (core.CPUPlace|core.CUDAPlace(n)) – 指明了 ``Executor`` 的执行场所
提示:你可以用
Executor
来调试基于并行GPU实现的复杂网络,他们有完全一样的参数也会产生相同的结果。
提示:你可以用
``Executor``
来调试基于并行GPU实现的复杂网络,他们有完全一样的参数也会产生相同的结果。
.. py:method:: close()
...
...
@@ -62,8 +90,8 @@ feed map为该program提供输入数据。fetch_list提供program训练结束后
应注意,执行器会执行program中的所有算子而不仅仅是依赖于fetch_list的那部分。
参数:
- **program** (Program
) – 需要执行的program,如果没有给定那么默认使用default_main_program
- **feed** (dict) – 前向输入的变量,数据,词典dict类型, 例如 {“image”: ImageData, “label”: Lab
le
Data}
- **program** (Program
|CompiledProgram) – 需要执行的program,如果没有给定那么默认使用default_main_program (未编译的)
- **feed** (dict) – 前向输入的变量,数据,词典dict类型, 例如 {“image”: ImageData, “label”: Lab
el
Data}
- **fetch_list** (list) – 用户想得到的变量或者命名的列表, run会根据这个列表给与结果
- **feed_var_name** (str) – 前向算子(feed operator)变量的名称
- **fetch_var_name** (str) – 结果获取算子(fetch operator)的输出变量名称
...
...
@@ -80,23 +108,21 @@ feed map为该program提供输入数据。fetch_list提供program训练结束后
.. code-block:: python
data = fluid.layers.data(name='X', shape=[1], dtype='float32')
out = fluid.layers.create_tensor(dtype='float32')
hidden = fluid.layers.fc(input=data, size=10)
fluid.layers.assign(hidden,
out)
fluid.layers.assign(hidden,out)
loss = fluid.layers.mean(out)
adam = fluid.optimizer.Adam()
adam.minimize(loss)
#
adam.minimize(loss)
.. code-block:: python
cpu = core.CPUPlace()
exe = fluid.Executor(cpu)
exe.run(fluid.default_startup_program())
.. code-block:: python
x = numpy.random.random(size=(10, 1)).astype('float32')
...
...
@@ -118,7 +144,7 @@ feed map为该program提供输入数据。fetch_list提供program训练结束后
global_scope
-------------------------------
.. py:function:: paddle.fluid.global_scope()
.. py:function:: paddle.fluid.global_scope
()
获取全局/默认作用域实例。很多api使用默认 ``global_scope`` ,例如 ``Executor.run`` 。
...
...
@@ -137,7 +163,7 @@ global_scope
scope_guard
-------------------------------
.. py:function:: paddle.fluid.scope_guard
(*args, **kwds
)
.. py:function:: paddle.fluid.scope_guard
(scope
)
修改全局/默认作用域(scope), 运行时中的所有变量都将分配给新的scope。
...
...
doc/fluid/api_cn/fluid_cn.rst
浏览文件 @
b7d58fa0
...
...
@@ -9,13 +9,14 @@
AsyncExecutor
-------------------------------
.. py:class:: paddle.fluid.AsyncExecutor(place=None)
.. py:class:: paddle.fluid.AsyncExecutor(place=None, run_mode='')
**AsyncExecutor正在积极开发,API可能在短期内进行调整。**
Python中的异步执行器。AsyncExecutor利用多核处理器和数据排队的强大功能,使数据读取和融合解耦,每个线程并行运行。
AsyncExecutor不是在python端读取数据,而是接受一个训练文件列表,该列表将在c++中检索,然后训练输入将被读取、解析并在c++代码中提供给训练网络。
AsyncExecutor正在积极开发,API可能在不久的将来会发生变化。
参数:
- **place** (fluid.CPUPlace|None) - 指示 executor 将在哪个设备上运行。目前仅支持CPU
...
...
@@ -47,7 +48,7 @@ AsyncExecutor正在积极开发,API可能在不久的将来会发生变化。
目前仅支持CPU
.. py:method:: run(program, data_feed, filelist, thread_num, fetch, debug=False)
.. py:method:: run(program, data_feed, filelist, thread_num, fetch,
mode='',
debug=False)
使用此 ``AsyncExecutor`` 来运行 ``program`` 。
...
...
@@ -59,21 +60,78 @@ AsyncExecutor正在积极开发,API可能在不久的将来会发生变化。
所有运算同时更新参数值。
参数:
- program (Program) – 需要执行的program。如果没有提供该参数,默认使用 ``default_main_program``
- data_feed (DataFeedDesc) – ``DataFeedDesc`` 对象
- filelist (str) – 一个包含训练数据集文件的文件列表
- thread_num (int) – 并发训练线程数。参照 *注解* 部分获取合适的设置方法
- fetch (str|list) – 变量名,或者变量名列表。指明最后要进行观察的变量命名
- debug (bool) – 如果为True, 在每一个minibatch处理后,fetch 中指明的变量将会通过标准输出打印出来
- **program** (Program) – 需要执行的program。如果没有提供该参数,默认使用 ``default_main_program``
- **data_feed** (DataFeedDesc) – ``DataFeedDesc`` 对象
- **filelist** (str) – 一个包含训练数据集文件的文件列表
- **thread_num** (int) – 并发训练线程数。参照 *注解* 部分获取合适的设置方法
- **fetch** (str|list) – 变量名,或者变量名列表。指明最后要进行观察的变量命名
- **mode** (str) – 该接口的运行模式
- **debug** (bool) – 如果为True, 在每一个minibatch处理后,fetch 中指明的变量将会通过标准输出打印出来
.. note::
1.该执行器会运行program中的所有运算,不只是那些依赖于fetchlist的运算
2.该类执行器在多线程上运行,每个线程占用一个CPU核。为了实现效率最大化,建议将 ``thread_num`` 等于或稍微小于CPU核心数
.. py:method:: download_data(afs_path, local_path, fs_default_name, ugi, file_cnt, hadoop_home='$HADOOP_HOME', process_num=12)
download_data是用于分布式训练的默认下载方法,用户可不使用该方法下载数据。
**示例**
.. code-block:: python
exe = fluid.AsyncExecutor()
exe.download_data("/xxx/xxx/xx/",
"./data", "afs://
xxx.xxx.xxx.xxx:9901", "xxx,yyy")
参数:
- **afs_path** (str) - 用户定义的afs_path
- **local_path** (str) - 下载数据路径
- **fs_default_name** (str) - 文件系统服务器地址
- **ugi** (str) - hadoop ugi
- **file_cn** (int) - 用户可以指定用于调试的文件号
- **hadoop_home** (str) - hadoop home path
- **process_num** (int) - 下载进程号
.. py:method:: get_instance()
获取当前节点的实例,以便用户可以在分布式背景下中执行操作。
.. py:method:: config_distributed_nodes()
如果用户需要运行分布式AsyncExecutor,则需要进行全局配置,以便获取当前进程的信息。
.. py:method:: stop()
在流程结束时,用户应该停止服务器并阻止所有workers。
.. py:method:: init_server(dist_desc)
如果当前进程是server,则初始化当前节点的服务器。
参数:
- **dist_desc** (str)- 描述如何初始化worker和server的protobuf字符串
.. py:method:: init_worker(dist_desc, startup_program)
如果当前进程是worker,则初始化当前节点的worker
参数:
- **dist_desc** (str)- 描述如何初始化worker和server的protobuf字符串
- **startup_program** (fluid.Program)- 当前进程的startup program
.. py:method:: init_model()
可以从其中一个worker中调用的init_model命令。随之,在server中初始化模型参数。
.. py:method:: save_model(save_path)
可以从其中一个worker调用的save_model命令。随之,模型参数会保存在server中并上传到文件系统的save_path指定的位置。
参数:
- **save_path** (str)- 文件系统的保存路径
.. _cn_api_fluid_BuildStrategy:
...
...
@@ -106,10 +164,14 @@ str类型。它表明了以graphviz格式向文件中写入SSA图的路径,有
.. py:attribute:: fuse_elewise_add_act_ops
bool类型。它表明了是否融合(fuse)elementwise_add_op和activation_op。这会使整体执行过程更快一些。默认为False。
.. py:attribute:: fuse_relu_depthwise_conv
BOOL类型,fuse_relu_depthwise_conv指示是否融合relu和depthwise_conv2d,它会节省GPU内存并可能加速执行过程。 此选项仅适用于GPU设备。 默认为False。
.. py:attribute:: gradient_scale_strategy
...
...
@@ -558,7 +620,7 @@ reader通常返回一个minibatch条目列表。在列表中每一条目都是
返回类型: dict
抛出异常: ``ValueError`` – 如果 ``drop_last`` 值为False并且
reader返回的minibatch数目与设备数目不相等
时,产生此异常
抛出异常: ``ValueError`` – 如果 ``drop_last`` 值为False并且
data batch与设备不匹配
时,产生此异常
...
...
@@ -784,7 +846,7 @@ DistributeTranspilerConfig
.. py:attribute:: min_block_size (int)
最小数据块的大小
block中分割(split)出的元素个数的最小值。
注意: 根据:`issuecomment-369912156 <https://github.com/PaddlePaddle/Paddle/issues/8638#issuecomment-369912156>`_ , 当数据块大小超过2MB时,我们可以有效地使用带宽。如果你想更改它,请详细查看 ``slice_variable`` 函数。
...
...
@@ -874,6 +936,32 @@ Executor将全局变量存储到全局作用域中,并为临时变量创建局
program中所有的算子会按顺序执行。
**示例代码**
.. code-block:: python
# 新建一个执行引擎Executor名为exe。
place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()
exe = fluid.Executor(place)
# 仅运行一次startup program.
# 不需要优化/编译这个startup program.
exe.run(fluid.default_startup_program())
# 无需编译,直接运行main program
loss, = exe.run(fluid.default_main_program(),
feed=feed_dict,
fetch_list=[loss.name])
# 另一种方法是,编译这个main program然后运行. 参考CompiledProgram
compiled_prog = compiler.CompiledProgram(
fluid.default_main_program()).with_data_parallel(
loss_name=loss.name)
loss, = exe.run(compiled_prog,
feed=feed_dict,
fetch_list=[loss.name])
参数:
- **place** (core.CPUPlace|core.CUDAPlace(n)) – 指明了 ``Executor`` 的执行场所
...
...
@@ -908,8 +996,8 @@ feed map为该program提供输入数据。fetch_list提供program训练结束后
应注意,执行器会执行program中的所有算子而不仅仅是依赖于fetch_list的那部分。
参数:
- **program** (Program
) – 需要执行的program,如果没有给定那么默认使用default_main_program
- **feed** (dict) – 前向输入的变量,数据,词典dict类型, 例如 {“image”: ImageData, “label”: Lab
le
Data}
- **program** (Program
|CompiledProgram) – 需要执行的program,如果没有给定那么默认使用default_main_program (未编译的)
- **feed** (dict) – 前向输入的变量,数据,词典dict类型, 例如 {“image”: ImageData, “label”: Lab
el
Data}
- **fetch_list** (list) – 用户想得到的变量或者命名的列表, run会根据这个列表给与结果
- **feed_var_name** (str) – 前向算子(feed operator)变量的名称
- **fetch_var_name** (str) – 结果获取算子(fetch operator)的输出变量名称
...
...
@@ -1032,13 +1120,49 @@ LoD可以有多个level(例如,一个段落可以有多个句子,一个句
.. py:method:: has_valid_recursive_sequence_lengths(self: paddle.fluid.core.LoDTensor) → bool
检查LoDTensor的lod值的正确性。
返回: 是否带有正确的lod值
返回类型: out (bool)
.. py:method:: lod(self: paddle.fluid.core.LoDTensor) → List[List[int]]
得到LoD Tensor的LoD。
返回:LoD Tensor的LoD。
返回类型:out(List [List [int]])
.. py:method:: recursive_sequence_lengths(self: paddle.fluid.core.LoDTensor) → List[List[int]]
.. py:method:: set_lod(self: paddle.fluid.core.LoDTensor, arg0: List[List[int]]) → None
得到与LoD对应的LoDTensor的序列长度。
返回:LoD对应的一至多个序列长度。
.. py:method:: set_recursive_sequence_lengths(self: paddle.fluid.core.LoDTensor, arg0: List[List[int]]) → None
返回类型:out(List [List [int])
.. py:method:: set_lod(self: paddle.fluid.core.LoDTensor, lod: List[List[int]]) → None
设置LoDTensor的LoD。
参数:
- **lod** (List [List [int]]) - 要设置的lod。
.. py:method:: set_recursive_sequence_lengths(self: paddle.fluid.core.LoDTensor, recursive_sequence_lengths: List[List[int]]) → None
根据递归序列长度recursive_sequence_lengths设置LoDTensor的LoD。
::
例如,如果recursive_sequence_lengths = [[2,3]],
意味着有两个长度分别为2和3的序列,相应的lod将是[[0,2,2 + 3]],即[[0, 2,5]]。
参数:
- **recursive_sequence_lengths** (List [List [int]]) - 序列长度。
...
...
@@ -1057,7 +1181,9 @@ LoDTensorArray
.. py:class:: paddle.fluid.LoDTensorArray
.. py:method:: append(self: paddle.fluid.core.LoDTensorArray, arg0: paddle.fluid.core.LoDTensor) → None
.. py:method:: append(self: paddle.fluid.core.LoDTensorArray, tensor: paddle.fluid.core.LoDTensor) → None
将LoDensor追加到LoDTensorArray后。
...
...
@@ -1100,7 +1226,7 @@ memory_optimize
name_scope
-------------------------------
.. py:function:: paddle.fluid.name_scope(
*args, **kwds
)
.. py:function:: paddle.fluid.name_scope(
prefix=None
)
为operators生成层次名称前缀
...
...
@@ -1357,7 +1483,10 @@ operator的角色,值只能是枚举变量{Forward, Backward, Optimize}。
返回:(str): debug 字符串
抛出异常: ``ValueError`` - 当 ``throw_on_error == true`` ,但没有设置任何必需的字段时,抛出 ``ValueError`` 。
返回类型: str
抛出异常:
- ``ValueError`` - 当 ``throw_on_error == true`` ,但没有设置任何必需的字段时,抛出 ``ValueError`` 。
...
...
@@ -1499,7 +1628,7 @@ operator的角色,值只能是枚举变量{Forward, Backward, Optimize}。
program_guard
-------------------------------
.. py:function::
paddle.fluid.program_guard(*args, **kwds
)
.. py:function::
paddle.fluid.program_guard(main_program, startup_program=None
)
...
...
@@ -1570,7 +1699,7 @@ release_memory
scope_guard
-------------------------------
.. py:function:: paddle.fluid.scope_guard(
*args, **kwds
)
.. py:function:: paddle.fluid.scope_guard(
scope
)
修改全局/默认作用域(scope), 运行时中的所有变量都将分配给新的scope。
...
...
doc/fluid/api_cn/layers_cn.rst
浏览文件 @
b7d58fa0
此差异已折叠。
点击以展开。
doc/fluid/api_cn/optimizer_cn.rst
浏览文件 @
b7d58fa0
...
...
@@ -152,7 +152,7 @@ Adamax 更新规则:
AdamOptimizer
-------------------------------
.. py:class:: paddle.fluid.optimizer.
AdamOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, regularization=None, name=Non
e)
.. py:class:: paddle.fluid.optimizer.
AdamOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, regularization=None, name=None, lazy_mode=Fals
e)
该函数实现了自适应矩估计优化器,介绍自 `Adam论文 <https://arxiv.org/abs/1412.6980>`_ 的第二节。Adam是一阶基于梯度下降的算法,基于自适应低阶矩估计。
Adam更新如下:
...
...
@@ -168,6 +168,8 @@ Adam更新如下:
- **epsilon** (float)-保持数值稳定性的短浮点类型值
- **regularization** - 规则化函数,例如''fluid.regularizer.L2DecayRegularizer
- **name** - 可选名称前缀
- **lazy_mode** (bool: false) - 官方Adam算法有两个移动平均累加器(moving-average accumulators)。累加器在每一步都会更新。在密集模式和稀疏模式下,两条移动平均线的每个元素都会更新。如果参数非常大,那么更新可能很慢。 lazy mode仅更新当前具有梯度的元素,所以它会更快。但是这种模式与原始的算法有不同的描述,可能会导致不同的结果。
**代码示例**:
...
...
@@ -285,9 +287,9 @@ FTRL 原始论文: ( `https://www.eecs.tufts.edu/~dsculley/papers/ad-click-predi
参数:
- **learning_rate** (float|Variable)-全局学习率。
- **l1** (float) -
暂无,请等待后期更新
- **l2** (float) -
暂无,请等待后期更新
- **lr_power** (float) -
暂无,请等待后期更新
- **l1** (float) -
L1 regularization strength.
- **l2** (float) -
L2 regularization strength.
- **lr_power** (float) -
学习率降低指数
- **regularization** - 正则化器,例如 ``fluid.regularizer.L2DecayRegularizer``
- **name** — 可选的名称前缀
...
...
@@ -400,7 +402,7 @@ ModelAverage
exe.run(inference_program...)
.. py:method:: apply(
*args, **kwds
)
.. py:method:: apply(
executor, need_restore=True
)
将平均值应用于当前模型的参数。
...
...
doc/fluid/api_cn/profiler_cn.rst
浏览文件 @
b7d58fa0
...
...
@@ -9,7 +9,7 @@
cuda_profiler
-------------------------------
.. py:function:: paddle.fluid.profiler.cuda_profiler(
*args, **kwds
)
.. py:function:: paddle.fluid.profiler.cuda_profiler(
output_file, output_mode=None, config=None
)
CUDA分析器。通过CUDA运行时应用程序编程接口对CUDA程序进行性能分析。分析结果将以键-值对格式或逗号分隔的格式写入output_file。用户可以通过output_mode参数设置输出模式,并通过配置参数设置计数器/选项。默认配置是[' gpustarttimestamp ', ' gpustarttimestamp ', ' gridsize3d ', ' threadblocksize ', ' streamid ', ' enableonstart 0 ', ' conckerneltrace ']。然后,用户可使用 `NVIDIA Visual Profiler <https://developer.nvidia.com/nvidia-visualprofiler>`_ 工具来加载这个输出文件以可视化结果。
...
...
@@ -62,7 +62,7 @@ CUDA分析器。通过CUDA运行时应用程序编程接口对CUDA程序进行
profiler
-------------------------------
.. py:function:: paddle.fluid.profiler.profiler(
*args, **kwds
)
.. py:function:: paddle.fluid.profiler.profiler(
state, sorted_key=None, profile_path='/tmp/profile'
)
profile interface 。与cuda_profiler不同,此profiler可用于分析CPU和GPU程序。默认情况下,它记录CPU和GPU kernel,如果想分析其他程序,可以参考教程来在c++代码中添加更多代码。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录