未验证 提交 b06883f0 编写于 作者: T Tink_Y 提交者: GitHub

Merge pull request #455 from haowang101779990/1207-cnapi

1207 api 翻译
#################
fluid.average
#################
......@@ -8,7 +7,7 @@
.. _cn_api_fluid_average_WeightedAverage:
WeightedAverage
>>>>>>>>>>>>>>>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.average.WeightedAverage
......@@ -65,5 +64,7 @@ WeightedAverage
英文版API文档: :ref:`api_fluid_average_WeightedAverage`
#################
fluid.backward
#################
......@@ -8,7 +7,7 @@
.. _cn_api_fluid_backward_append_backward:
append_backward
>>>>>>>>>>>>>>>>>>>>>>>>>>
-------------------------------
.. py:function:: paddle.fluid.backward.append_backward(loss, parameter_list=None, no_grad_set=None, callbacks=None)
......@@ -86,5 +85,7 @@ append_backward
英文版API文档: :ref:`api_fluid_backward_append_backward`
#################
fluid.clip
#################
......@@ -8,7 +7,7 @@
.. _cn_api_fluid_clip_ErrorClipByValue:
ErrorClipByValue
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.clip.ErrorClipByValue(max, min=None)
......@@ -34,12 +33,14 @@ ErrorClipByValue
英文版API文档: :ref:`api_fluid_clip_ErrorClipByValue`
.. _cn_api_fluid_clip_GradientClipByGlobalNorm:
GradientClipByGlobalNorm
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.clip.GradientClipByGlobalNorm(clip_norm, group_name='default_group')
......@@ -78,12 +79,14 @@ GradientClipByGlobalNorm
英文版API文档: :ref:`api_fluid_clip_GradientClipByGlobalNorm`
.. _cn_api_fluid_clip_GradientClipByNorm:
GradientClipByNorm
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.clip.GradientClipByNorm(clip_norm)
......@@ -116,12 +119,14 @@ GradientClipByNorm
英文版API文档: :ref:`api_fluid_clip_GradientClipByNorm`
.. _cn_api_fluid_clip_GradientClipByValue:
GradientClipByValue
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.clip.GradientClipByValue(max, min=None)
......@@ -152,5 +157,7 @@ GradientClipByValue
英文版API文档: :ref:`api_fluid_clip_GradientClipByValue`
#################
fluid.data_feeder
#################
###################
fluid.data_feeder
###################
.. _cn_api_fluid_data_feeder_DataFeeder:
DataFeeder
>>>>>>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.data_feeder.DataFeeder(feed_list, place, program=None)
......@@ -101,10 +100,10 @@ reader通常返回一个minibatch条目列表。在列表中每一条目都是
将reader返回的输入数据batch转换为多个mini-batch,之后每个mini-batch都会被输入进各个设备(CPU或GPU)中。
参数:
- **reader** (fun) – 待输入的数据
- **multi_devices** (bool) – 执行场所的数目,默认为None
- **num_places** (int) – 执行场所的数目,默认为None
- **drop_last** (bool) – 舍弃数目匹配不上的batch或设备
- **reader** (fun) – 该参数是一个可以生成数据的函数
- **multi_devices** (bool) – bool型,指明是否使用多个设备
- **num_places** (int) – 如果 ``multi_devices`` 为 ``True`` , 可以使用此参数来设置GPU数目。如果 ``num_places`` 为 ``None`` ,该函数默认使用当前训练机所有GPU设备。默认为None。
- **drop_last** (bool) – 如果最后一个batch的大小比 ``batch_size`` 要小,则可使用该参数来指明是否选择丢弃最后一个batch数据。 默认为 ``True``
返回:转换结果
......@@ -117,5 +116,7 @@ reader通常返回一个minibatch条目列表。在列表中每一条目都是
英文版API文档: :ref:`api_fluid_data_feeder_DataFeeder`
#################
fluid.executor
#################
.. _cn_api_fluid_executor:
.. _cn_api_fluid_executor_Executor:
Executor
>>>>>>>>>>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.executor.Executor (place)
......@@ -107,5 +106,64 @@ feed map为该program提供输入数据。fetch_list提供program训练结束后
英文版API文档: :ref:`api_fluid_executor`
.. _cn_api_fluid_executor_global_scope:
global_scope
-------------------------------
.. py:function:: paddle.fluid.global_scope()
获取全局/默认作用域实例。很多api使用默认 ``global_scope`` ,例如 ``Executor.run`` 。
返回:全局/默认作用域实例
返回类型:Scope
.. _cn_api_fluid_executor_scope_guard:
scope_guard
-------------------------------
.. py:function:: paddle.fluid.scope_guard(*args, **kwds)
修改全局/默认作用域(scope), 运行时中的所有变量都将分配给新的scope。
参数:
- **scope** - 新的全局/默认 scope。
**代码示例**
.. code-block:: python
import paddle.fluid as fluid
new_scope = fluid.Scope()
with fluid.scope_guard(new_scope):
...
此差异已折叠。
#################
###################
fluid.initializer
#################
###################
.. _cn_api_fluid_initializer_Bilinear:
......@@ -9,9 +8,9 @@
Bilinear
>>>>>>>>>>>
.. py:function:: paddle.fluid.initializer.Bilinear
.. py:attribute:: paddle.fluid.initializer.Bilinear
``BilinearInitializer``的别名
``BilinearInitializer`` 的别名
.. _cn_api_fluid_initializer_BilinearInitializer:
......@@ -45,16 +44,16 @@ num_filters = C和groups = C 表示这是按通道转置的卷积函数。滤波
英文版API文档: :ref:`api_fluid_initializer_BilinearInitializer`
.. _cn_api_fluid_initializer_Constant:
Constant
>>>>>>>>>>
.. py:function:: paddle.fluid.initializer.Constant
.. py:attribute:: paddle.fluid.initializer.Constant
``ConstantInitializer``的别名
``ConstantInitializer`` 的别名
.. _cn_api_fluid_initializer_ConstantInitializer:
......@@ -78,7 +77,7 @@ ConstantInitializer
英文版API文档: :ref:`api_fluid_initializer_ConstantInitializer`
......@@ -103,7 +102,7 @@ force_init_on_cpu
create_op('force_cpu': force_init_on_cpu())
英文版API文档: :ref:`api_fluid_initializer_force_init_on_cpu`
......@@ -130,7 +129,7 @@ init_on_cpu
英文版API文档: :ref:`api_fluid_initializer_init_on_cpu`
.. _cn_api_fluid_initializer_MSRA:
......@@ -138,9 +137,9 @@ init_on_cpu
MSRA
>>>>>>
.. py:function:: paddle.fluid.initializer.MSRA
.. py:attribute:: paddle.fluid.initializer.MSRA
``MSRAInitializer``的别名
``MSRAInitializer`` 的别名
.. _cn_api_fluid_initializer_MSRAInitializer:
......@@ -184,7 +183,7 @@ MSRAInitializer
英文版API文档: :ref:`api_fluid_initializer_MSRAInitializer`
.. _cn_api_fluid_initializer_Normal:
......@@ -192,9 +191,9 @@ MSRAInitializer
Normal
>>>>>>>>
.. py:function:: paddle.fluid.initializer.Normal
.. py:attribute:: paddle.fluid.initializer.Normal
``NormalInitializer``的别名
``NormalInitializer`` 的别名
.. _cn_api_fluid_initializer_NormalInitializer:
......@@ -222,16 +221,16 @@ NormalInitializer
英文版API文档: :ref:`api_fluid_initializer_NormalInitializer`
.. _cn_api_fluid_initializer_TruncatedNormal:
TruncatedNormal
>>>>>>>>>>>>>>>>>
.. py:function:: paddle.fluid.initializer.TruncatedNormal
.. py:attribute:: paddle.fluid.initializer.TruncatedNormal
``TruncatedNormalInitializer``的别名
``TruncatedNormalInitializer`` 的别名
.. _cn_api_fluid_initializer_TruncatedNormalInitializer:
......@@ -260,7 +259,7 @@ Random Truncated Normal(高斯)分布初始化器
英文版API文档: :ref:`api_fluid_initializer_TruncatedNormalInitializer`
.. _cn_api_fluid_initializer_Uniform:
......@@ -268,13 +267,14 @@ Random Truncated Normal(高斯)分布初始化器
Uniform
>>>>>>>>>
.. _cn_api_fluid_initializer_UniformInitializer:
.. py:attribute:: paddle.fluid.initializer.Uniform
.. py:class:: paddle.fluid.initializer.Uniform
``UniformInitializer`` 的别名
``UniformInitializer``的别名
.. _cn_api_fluid_initializer_UniformInitializer:
UniformInitializer
>>>>>>>>>>>>
......@@ -297,16 +297,24 @@ UniformInitializer
英文版API文档: :ref:`api_fluid_initializer_UniformInitializer`
.. _api_fluid_initializer_Xavier:
.. _cn_api_fluid_initializer_Xavier:
Xavier
>>>>>>>>>
.. py:function:: paddle.fluid.initializer.Xavier
.. py:attribute:: paddle.fluid.initializer.Xavier
``XavierInitializer`` 的别名
``XavierInitializer``的别名
.. _cn_api_fluid_initializer_XavierInitializer:
......@@ -351,5 +359,5 @@ XavierInitializer
英文版API文档: :ref:`api_fluid_initializer_XavierInitializer`
#################
fluid.io
#################
......@@ -8,7 +7,7 @@
.. _cn_api_fluid_io_load_inference_model:
load_inference_model
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.io.load_inference_model(dirname, executor, model_filename=None, params_filename=None, pserver_endpoints=None)
......@@ -44,12 +43,14 @@ load_inference_model
英文版API文档: :ref:`api_fluid_io_load_inference_model`
.. _cn_api_fluid_io_load_params:
load_params
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.io.load_params(executor, dirname, main_program=None, filename=None)
......@@ -79,12 +80,14 @@ load_params
英文版API文档: :ref:`api_fluid_io_load_params`
.. _cn_api_fluid_io_load_persistables:
load_persistables
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.io.load_persistables(executor, dirname, main_program=None, filename=None)
......@@ -112,12 +115,14 @@ load_persistables
英文版API文档: :ref:`api_fluid_io_load_persistables`
.. _cn_api_fluid_io_load_vars:
load_vars
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.io.load_vars(executor, dirname, main_program=None, vars=None, predicate=None, filename=None)
......@@ -154,24 +159,28 @@ load_vars
prog = fluid.default_main_program()
fluid.io.load_vars(executor=exe, dirname=path, main_program=prog,
vars=None)
vars=None, predicate=name_has_fc)
#加载所有`main_program`中变量名包含 ‘fc’ 的变量
#并且此前所有变量应该保存在不同文件中
# The second usage: using `vars` to specify variables
#用法2:使用 `vars` 列表来指明变量
var_list = [var_a, var_b, var_c]
fluid.io.load_vars(executor=exe, dirname=path, vars=var_list,
filename="vars_file")
# var_a, var_b and var_c will be loaded. And they are supposed to haven
# been saved in the same file named 'var_file' in the path "./my_paddle_model".
# 加载 var_a , var_b , var_c .它们此前应被保存在同一文件中
# 文件名为 'var_file' ,路径为 "./my_paddle_model".
英文版API文档: :ref:`api_fluid_io_load_vars`
.. _cn_api_fluid_io_save_inference_model:
save_inference_model
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.io.save_inference_model(dirname, feeded_var_names, target_vars, executor, main_program=None, model_filename=None, params_filename=None, export_for_deployment=True)
......@@ -211,12 +220,14 @@ save_inference_model
英文版API文档: :ref:`api_fluid_io_save_inference_model`
.. _cn_api_fluid_io_save_params:
save_params
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.io.save_params(executor, dirname, main_program=None, filename=None)
......@@ -248,12 +259,14 @@ save_params
英文版API文档: :ref:`api_fluid_io_save_params`
.. _cn_api_fluid_io_save_persistables:
save_persistables
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.io.save_persistables(executor, dirname, main_program=None, filename=None)
......@@ -284,14 +297,14 @@ save_persistables
英文版API文档: :ref:`api_fluid_io_save_persistables`
.. _cn_api_fluid_io_save_vars:
save_vars
>>>>>>>>>>>>>>>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.io.save_vars(executor, dirname, main_program=None, vars=None, predicate=None, filename=None)
......@@ -328,7 +341,7 @@ save_vars
prog = fluid.default_main_program()
fluid.io.save_vars(executor=exe, dirname=path, main_program=prog,
vars=None)
vars=None, predicate = name_has_fc)
# 将main_program中名中包含“fc”的的所有变量保存。
# 变量将分开保存。
......@@ -341,5 +354,7 @@ save_vars
英文版API文档: :ref:`api_fluid_io_save_vars`
此差异已折叠。
#################
fluid.metrics
#################
.. _cn_api_fluid_merics_Auc:
Auc
>>>>
.. py:class:: paddle.fluid.metrics.Auc(name, curve='ROC', num_thresholds=4095)
.. _cn_api_fluid_metrics_Accuracy:
Auc度量适用于二分类。参考 https://en.wikipedia.org/wiki/Receiver_operating_characteristic#Area_under_the_curve 。需要注意auc度量本身是用Python计算值。如果关心速度,请用fluid.layers.auc。
Accuracy
-------------------------------
auc函数创建四个局部变量true_positives, true_negatives, false_positives和false_negatives,用于计算AUC。对于离散化AUC曲线,临界值线性间隔设置以便计算召回率和准确率的值,用false positive率的召回值高度计算ROC曲线面积,用recall的准确值高度计算PR曲线面积。
.. py:class:: paddle.fluid.metrics.Accuracy(name=None)
参数:
- **name** - 度量名
- **curve** - 将要计算的曲线名的详情,曲线包括ROC(默认)或者PR(Precision-Recall-curve)。
累加mini-batch正确率,计算每次pass的平均准确率。https://en.wikipedia.org/wiki/Accuracy_and_precision
注:目前只用Python实现ROC曲线
参数:
- **name** — 度量标准的名称
**代码示例**
**代码示例**
.. code-block:: python
labels = fluid.layers.data(name="data", shape=[1], dtype="int32")
data = fluid.layers.data(name="data", shape=[32, 32], dtype="int32")
pred = fluid.layers.fc(input=data, size=1000, act="tanh")
metric = fluid.metrics.Auc()
for data in train_reader():
loss, preds, labels = exe.run(fetch_list=[cost, preds, labels])
metric.update(preds, labels)
numpy_auc = metric.eval()
minibatch_accuracy = fluid.layers.accuracy(pred, label)
accuracy_evaluator = fluid.metrics.Accuracy()
for pass in range(PASSES):
accuracy_evaluator.reset()
for data in train_reader():
batch_size = data[0]
loss = exe.run(fetch_list=[cost, minibatch_accuracy])
accuracy_evaluator.update(value=minibatch_accuracy, weight=batch_size)
numpy_acc = accuracy_evaluator.eval()
英文版API文档: :ref:`api_fluid_merics_Auc`
.. _cn_api_fluid_merics_MetricBase:
.. py:method:: update(value, weight)
MetricBase
>>>>>>>>>>>>
更新mini batch的状态.
.. py:class:: paddle.fluid.metrics.MetricBase(name)
参数:
- **value** (float|numpy.array) – 每个mini batch的正确率
- **weight** (int|float) – batch 大小
所有Metrics的基类。MetricBase为模型估计方法定义一组接口。Metrics累积连续的两个minibatch之间的度量状态,对每个minibatch用最新接口将当前minibatch值添加到全局状态。用eval函数来计算last reset()或者scratch on()中累积的度量值。如果需要定制一个新的metric,请继承自MetricBase和自定义实现类。
参数:
- **name** (str) - metric实例名。例如准确率(accuracy)。如果想区分一个模型里不同的metrics,则需要实例名。
.. py:method:: reset()
reset()清除度量(metric)的状态(state)。默认情况下,状态(state)包含没有 ``_`` 前缀的metric。reset将这些状态设置为初始状态。如果不想使用隐式命名规则,请自定义reset接口。
.. py:method:: get_config()
获取度量(metric)状态和当前状态。状态(state)包含没有 ``_`` 前缀的成员。
参数:**None**
返回:metric对应到state的字典
.. _cn_api_fluid_metrics_Auc:
返回类型:字典(dict)
Auc
-------------------------------
.. py:class:: paddle.fluid.metrics.Auc(name, curve='ROC', num_thresholds=4095)
.. py:method:: update(preds,labels)
Auc度量适用于二分类。参考 https://en.wikipedia.org/wiki/Receiver_operating_characteristic#Area_under_the_curve 。需要注意auc度量本身是用Python计算值。如果关心速度,请用fluid.layers.auc。
更新每个minibatch的度量状态(metric states),用户可通过Python或者C++操作符计算minibatch度量值(metric)
auc函数创建四个局部变量true_positives, true_negatives, false_positives和false_negatives,用于计算AUC。对于离散化AUC曲线,临界值线性间隔设置以便计算召回率和准确率的值,用false positive率的召回值高度计算ROC曲线面积,用recall的准确值高度计算PR曲线面积
参数:
- **preds** (numpy.array) - 当前minibatch的预测
- **labels** (numpy.array) - 当前minibatch的标签,如果标签为one-hot或者soft-label,应该自定义相应的更新规则。
.. py:method:: eval()
基于累积状态(accumulated states)评估当前度量(current metric)。
返回:metrics(Python中)
返回类型:float|list(float)|numpy.array
- **name** - 度量名
- **curve** - 将要计算的曲线名的详情,曲线包括ROC(默认)或者PR(Precision-Recall-curve)。
注:目前只用Python实现ROC曲线
英文版API文档: :ref:`api_fluid_merics_MetricBase`
**代码示例**:
.. _cn_api_fluid_metrics_Accuracy:
.. code-block:: python
Accuracy
>>>>>>>>>>>>
pred = fluid.layers.fc(input=data, size=1000, act="tanh")
metric = fluid.metrics.Auc()
for data in train_reader():
loss, preds, labels = exe.run(fetch_list=[cost, preds, labels])
metric.update(preds, labels)
numpy_auc = metric.eval()
.. py:class:: paddle.fluid.metrics.Accuracy(name=None)
累加mini-batch正确率,计算每次pass的平均准确率。https://en.wikipedia.org/wiki/Accuracy_and_precision
参数:
- **name** — 度量标准的名称
**代码示例**
.. code-block:: python
labels = fluid.layers.data(name="data", shape=[1], dtype="int32")
data = fluid.layers.data(name="data", shape=[32, 32], dtype="int32")
pred = fluid.layers.fc(input=data, size=1000, act="tanh")
minibatch_accuracy = fluid.layers.accuracy(pred, label)
accuracy_evaluator = fluid.metrics.Accuracy()
for pass in range(PASSES):
accuracy_evaluator.reset()
for data in train_reader():
batch_size = data[0]
loss = exe.run(fetch_list=[cost, minibatch_accuracy])
accuracy_evaluator.update(value=minibatch_accuracy, weight=batch_size)
numpy_acc = accuracy_evaluator.eval()
.. py:method:: update(value, weight)
更新mini batch的状态.
参数:
- **value** (float|numpy.array) – 每个mini batch的正确率
- **weight** (int|float) – batch 大小
英文版API文档: :ref:`api_fluid_metrics_Accuracy`
.. _cn_api_fluid_metrics_ChunkEvaluator:
ChunkEvaluator
>>>>>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.metrics.ChunkEvaluator(name=None)
......@@ -169,12 +125,14 @@ ChunkEvaluator
英文版API文档: :ref:`api_fluid_metrics_ChunkEvaluator`
.. _cn_api_fluid_metrics_CompositeMetric:
CompositeMetric
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.metrics.CompositeMetric(name=None)
......@@ -229,14 +187,16 @@ CompositeMetric
英文版API文档: :ref:`api_fluid_metrics_CompositeMetric`
.. _cn_api_fluid_metrics_DetectionMAP:
DetectionMAP
>>>>>>>>>>>>
-------------------------------
.. py:class:: class paddle.fluid.metrics.DetectionMAP(name=None)
.. py:class:: paddle.fluid.metrics.DetectionMAP(name=None)
计算 detection 平均精度(mAP)。 mAP是衡量object detectors精度的指标,比如 Faster R-CNN,SSD等。它不同于召回率,它是最大精度的平均值。 请从以下文章中获取更多信息:
......@@ -275,12 +235,14 @@ https://arxiv.org/abs/1512.02325
英文版API文档: :ref:`api_fluid_metrics_DetectionMAP`
.. _cn_api_fluid_metrics_EditDistance:
EditDistance
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.metrics.EditDistance(name)
......@@ -307,12 +269,63 @@ EditDistance
英文版API文档: :ref:`api_fluid_metrics_EditDistance`
.. _cn_api_fluid_metrics_MetricBase:
MetricBase
-------------------------------
.. py:class:: paddle.fluid.metrics.MetricBase(name)
所有Metrics的基类。MetricBase为模型估计方法定义一组接口。Metrics累积连续的两个minibatch之间的度量状态,对每个minibatch用最新接口将当前minibatch值添加到全局状态。用eval函数来计算last reset()或者scratch on()中累积的度量值。如果需要定制一个新的metric,请继承自MetricBase和自定义实现类。
参数:
- **name** (str) - metric实例名。例如准确率(accuracy)。如果想区分一个模型里不同的metrics,则需要实例名。
.. py:method:: reset()
reset()清除度量(metric)的状态(state)。默认情况下,状态(state)包含没有 ``_`` 前缀的metric。reset将这些状态设置为初始状态。如果不想使用隐式命名规则,请自定义reset接口。
.. py:method:: get_config()
获取度量(metric)状态和当前状态。状态(state)包含没有 ``_`` 前缀的成员。
参数:**None**
返回:metric对应到state的字典
返回类型:字典(dict)
.. py:method:: update(preds,labels)
更新每个minibatch的度量状态(metric states),用户可通过Python或者C++操作符计算minibatch度量值(metric)。
参数:
- **preds** (numpy.array) - 当前minibatch的预测
- **labels** (numpy.array) - 当前minibatch的标签,如果标签为one-hot或者soft-label,应该自定义相应的更新规则。
.. py:method:: eval()
基于累积状态(accumulated states)评估当前度量(current metric)。
返回:metrics(Python中)
返回类型:float|list(float)|numpy.array
.. _cn_api_fluid_metrics_Precision:
Precision
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.metrics.Precision(name=None)
......@@ -339,12 +352,14 @@ Precision(也称为 positive predictive value,正预测值)是被预测为正样
英文版API文档: :ref:`api_fluid_metrics_Precision`
.. _cn_api_fluid_metrics_Recall:
Recall
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.metrics.Recall(name=None)
......@@ -368,5 +383,7 @@ https://en.wikipedia.org/wiki/Precision_and_recall
英文版API文档: :ref:`api_fluid_metrics_Recall`
#################
fluid.nets
#################
.. _cn_api_fluid_nets_glu:
glu
-------------------------------
.. py:function:: paddle.fluid.nets.glu(input, dim=-1)
T
he Gated Linear Units(GLU)由切分(split),sigmoid激活函数和按元素相乘组成。沿着给定维将input拆分成两个大小相同的部分,a和b,计算如下:
.. math::
GLU(a,b) = a\bigotimes \sigma (b)
参考论文: `Language Modeling with Gated Convolutional Networks <https://arxiv.org/pdf/1612.08083.pdf>`_
参数:
- **input** (Variable) - 输入变量,张量或者LoDTensor
- **dim** (int) - 拆分的维度。如果 :math:`dim<0`,拆分的维为 :math:`rank(input)+dim`。默认为-1
返回:变量 —— 变量的大小为输入的一半
返回类型:变量(Variable)
**代码示例:**
.. code-block:: python
data = fluid.layers.data(name="words", shape=[3, 6, 9], dtype="float32")
output = fluid.nets.glu(input=data, dim=1) # shape of output: [3, 3, 9]
.. _cn_api_fluid_nets_img_conv_group:
img_conv_group
-------------------------------
.. py:function:: paddle.fluid.nets.img_conv_group(input, conv_num_filter, pool_size, conv_padding=1, conv_filter_size=3, conv_act=None, param_attr=None, conv_with_batchnorm=False, conv_batchnorm_drop_rate=0.0, pool_stride=1, pool_type='max', use_cudnn=True)
Image Convolution Group由Convolution2d,BatchNorm,DropOut和Pool2d组成。根据输入参数,img_conv_group将使用Convolution2d,BatchNorm,DropOut对Input进行连续计算,并将最后一个结果传递给Pool2d。
参数:
- **input** (Variable) - 具有[N,C,H,W]格式的输入图像。
- **conv_num_filter** (list | tuple) - 表示该组的过滤器数。
- **pool_size** (int | list | tuple) - ``Pool2d Layer`` 池的大小。如果pool_size是列表或元组,则它必须包含两个整数(pool_size_H,pool_size_W)。否则,pool_size_H = pool_size_W = pool_size。
- **conv_padding** (int | list | tuple) - Conv2d Layer的 ``padding`` 大小。如果 ``padding`` 是列表或元组,则其长度必须等于 ``conv_num_filter`` 的长度。否则,所有Conv2d图层的 ``conv_padding`` 都是相同的。默认1。
- **conv_filter_size** (int | list | tuple) - 过滤器大小。如果filter_size是列表或元组,则其长度必须等于 ``conv_num_filter`` 的长度。否则,所有Conv2d图层的 ``conv_filter_size`` 都是相同的。默认3。
- **conv_act** (str) - ``Conv2d Layer`` 的激活类型, ``BatchNorm`` 后面没有。默认值:无。
- **param_attr** (ParamAttr) - Conv2d层的参数。默认值:无
- **conv_with_batchnorm** (bool | list) - 表示在 ``Conv2d Layer`` 之后是否使用 ``BatchNorm`` 。如果 ``conv_with_batchnorm`` 是一个列表,则其长度必须等于 ``conv_num_filter`` 的长度。否则, ``conv_with_batchnorm`` 指示是否所有Conv2d层都遵循 ``BatchNorm``。默认为False。
- **conv_batchnorm_drop_rate** (float | list) - 表示 ``BatchNorm`` 之后的 ``Dropout Layer`` 的 ``rop_rate`` 。如果 ``conv_batchnorm_drop_rate`` 是一个列表,则其长度必须等于 ``conv_num_filter`` 的长度。否则,所有 ``Dropout Layers`` 的 ``drop_rate`` 都是 ``conv_batchnorm_drop_rate`` 。默认值为0.0。
- **pool_stride** (int | list | tuple) - ``Pool2d`` 层的汇集步幅。如果 ``pool_stride`` 是列表或元组,则它必须包含两个整数(pooling_stride_H,pooling_stride_W)。否则,pooling_stride_H = pooling_stride_W = pool_stride。默认1。
- **pool_type** (str) - 池化类型可以是最大池化的 ``max`` 和平均池化的 ``avg`` 。默认max。
- **use_cudnn** (bool) - 是否使用cudnn内核,仅在安装cudnn库时才有效。默认值:True
返回: 使用Convolution2d进行串行计算后的最终结果,BatchNorm,DropOut和Pool2d。
返回类型: 变量(Variable)。
**代码示例**
.. code-block:: python
img = fluid.layers.data(name='img', shape=[1, 28, 28], dtype='float32')
conv_pool = fluid.nets.img_conv_group(input=img,
num_channels=3,
conv_padding=1,
conv_num_filter=[3, 3],
conv_filter_size=3,
conv_act="relu",
pool_size=2,
pool_stride=2)
.. _cn_api_fluid_nets_scaled_dot_product_attention:
scaled_dot_product_attention
-------------------------------
.. py:function:: paddle.fluid.nets.scaled_dot_product_attention(queries, keys, values, num_heads=1, dropout_rate=0.0)
点乘attention运算。
attention运算机制可以被视为将查询和一组键值对映射到输出。 将输出计算为值的加权和,其中分配给每个值的权重由查询的兼容性函数(此处的点积)与对应的密钥计算。
可以通过(batch)矩阵乘法实现点积attention运算,如下所示:
.. math::
Attention(Q, K, V)= softmax(QK^\mathrm{T})V
请参阅 `Attention Is All You Need <https://arxiv.org/pdf/1706.03762.pdf>`_
参数:
- **queries** (Variable) - 输入变量,应为3-D Tensor。
- **keys** (Variable) - 输入变量,应为3-D Tensor。
- **values** (Variable) - 输入变量,应为3-D Tensor。
- **num_heads** (int) - 计算缩放点积attention运算的head数。默认值:1。
- **dropout_rate** (float) - 降低attention的dropout率。默认值:0.0。
返回: 通过multi-head来缩放点积attention运算的三维张量。
返回类型: 变量(Variable)。
抛出异常:
- ``ValueError`` - 如果输入查询键,值不是3-D Tensor会报错。
.. note::
当num_heads> 1时,分别学习三个线性投影,以将输入查询,键和值映射到查询',键'和值'。 查询',键'和值'与查询,键和值具有相同的形状。
当num_heads == 1时,scaled_dot_product_attention没有可学习的参数。
**代码示例**
.. code-block:: python
queries = fluid.layers.data(name="queries",
shape=[3, 5, 9],
dtype="float32",
append_batch_size=False)
queries.stop_gradient = False
keys = fluid.layers.data(name="keys",
shape=[3, 6, 9],
dtype="float32",
append_batch_size=False)
keys.stop_gradient = False
values = fluid.layers.data(name="values",
shape=[3, 6, 10],
dtype="float32",
append_batch_size=False)
values.stop_gradient = False
contexts = fluid.nets.scaled_dot_product_attention(queries, keys, values)
contexts.shape # [3, 5, 10]
.. _cn_api_fluid_nets_sequence_conv_pool:
sequence_conv_pool
-------------------------------
.. py:function:: paddle.fluid.nets.sequence_conv_pool(input, num_filters, filter_size, param_attr=None, act='sigmoid', pool_type='max')
sequence_conv_pool由序列卷积和池化组成
参数:
- **input** (Variable) - sequence_conv的输入,支持变量时间长度输入序列。当前输入为shape为(T,N)的矩阵,T是mini-batch中的总时间步数,N是input_hidden_size
- **num_filters** (int)- 滤波器数
- **filter_size** (int)- 滤波器大小
- **param_attr** (ParamAttr) - Sequence_conv层的参数。默认:None
- **act** (str) - Sequence_conv层的激活函数类型。默认:sigmoid
- **pool_type** (str)- 池化类型。可以是max-pooling的max,average-pooling的average,sum-pooling的sum,sqrt-pooling的sqrt。默认max
返回:序列卷积(Sequence Convolution)和池化(Pooling)的结果
返回类型:变量(Variable)
**代码示例**:
.. code-block:: python
input_dim = len(word_dict)
emb_dim = 128
hid_dim = 512
data = fluid.layers.data( ame="words", shape=[1], dtype="int64", lod_level=1)
emb = fluid.layers.embedding(input=data, size=[input_dim, emb_dim], is_sparse=True)
seq_conv = fluid.nets.sequence_conv_pool(input=emb,
num_filters=hid_dim,
filter_size=3,
act="tanh",
pool_type="sqrt")
.. _cn_api_fluid_nets_simple_img_conv_pool:
simple_img_conv_pool
-------------------------------
.. py:function:: paddle.fluid.nets.simple_img_conv_pool(input, num_filters, filter_size, pool_size, pool_stride, pool_padding=0, pool_type='max', global_pooling=False, conv_stride=1, conv_padding=0, conv_dilation=1, conv_groups=1, param_attr=None, bias_attr=None, act=None, use_cudnn=True)
``simple_img_conv_pool`` 由一个Convolution2d和一个Pool2d组成。
参数:
- **input** (Variable) - 输入图像的格式为[N,C,H,W]。
- **num_filters** (int) - ``filter`` 的数量。它与输出的通道相同。
- **filter_size** (int | list | tuple) - 过滤器大小。如果 ``filter_size`` 是列表或元组,则它必须包含两个整数(filter_size_H,filter_size_W)。否则,filter_size_H = filter_size_W = filter_size。
- **pool_size** (int | list | tuple) - Pool2d池化层大小。如果pool_size是列表或元组,则它必须包含两个整数(pool_size_H,pool_size_W)。否则,pool_size_H = pool_size_W = pool_size。
- **pool_stride** (int | list | tuple) - Pool2d池化层步长。如果pool_stride是列表或元组,则它必须包含两个整数(pooling_stride_H,pooling_stride_W)。否则,pooling_stride_H = pooling_stride_W = pool_stride。
- **pool_padding** (int | list | tuple) - Pool2d池化层的padding。如果pool_padding是列表或元组,则它必须包含两个整数(pool_padding_H,pool_padding_W)。否则,pool_padding_H = pool_padding_W = pool_padding。默认值为0。
- **pool_type** (str) - 池化类型可以是 ``max-pooling`` 的 ``max`` 和平均池的 ``avg`` 。默认 ``max`` 。
- **global_pooling** (bool)- 是否使用全局池。如果global_pooling = true,则忽略pool_size和pool_padding。默认为False
- **conv_stride** (int | list | tuple) - conv2d Layer的步长。如果stride是列表或元组,则它必须包含两个整数,(conv_stride_H,conv_stride_W)。否则,conv_stride_H = conv_stride_W = conv_stride。默认值:conv_stride = 1。
- **conv_padding** (int | list | tuple) - conv2d Layer的padding大小。如果padding是列表或元组,则它必须包含两个整数(conv_padding_H,conv_padding_W)。否则,conv_padding_H = conv_padding_W = conv_padding。默认值:conv_padding = 0。
- **conv_dilation** (int | list | tuple) - conv2d Layer的dilation大小。如果dilation是列表或元组,则它必须包含两个整数(conv_dilation_H,conv_dilation_W)。否则,conv_dilation_H = conv_dilation_W = conv_dilation。默认值:conv_dilation = 1。
- **conv_groups** (int) - conv2d Layer的组数。根据Alex Krizhevsky的Deep CNN论文中的分组卷积:当group = 2时,前半部分滤波器仅连接到输入通道的前半部分,而后半部分滤波器仅连接到后半部分输入通道。默认值:groups = 1。
- **param_attr** (ParamAttr | None) - 可学习参数的参数属性或conv2d权重。如果将其设置为None或ParamAttr的一个属性,则conv2d将创建ParamAttr作为param_attr。如果未设置param_attr的初始化,则使用 :math:`Normal(0.0,std)` 初始化参数,并且 ``std`` 为 :math:`(\frac{2.0 }{filter\_elem\_num})^{0.5}` 。默认值:None
- **bias_attr** (ParamAttr | bool | None) - conv2d的bias参数属性。如果设置为False,则不会向输出单元添加bias。如果将其设置为None或ParamAttr的一个属性,则conv2d将创建ParamAttr作为bias_attr。如果未设置bias_attr的初始化程序,则将偏差初始化为零。默认值:None
- **act** (str) - conv2d的激活类型,如果设置为None,则不附加激活。默认值:无。
- **use_cudnn** (bool) - 是否使用cudnn内核,仅在安装cudnn库时才有效。默认值:True。
返回: Convolution2d和Pool2d之后输入的结果。
返回类型: 变量(Variable)
**示例代码**
.. code-block:: python
img = fluid.layers.data(name='img', shape=[1, 28, 28], dtype='float32')
conv_pool = fluid.nets.simple_img_conv_pool(input=img,
filter_size=5,
num_filters=20,
pool_size=2,
pool_stride=2,
act="relu")
#################
fluid.optimizer
#################
.. _cn_api_fluid_optimizer_Adadelta:
Adadelta
-------------------------------
.. py:attribute:: paddle.fluid.optimizer.Adadelta
``AdadeltaOptimizer`` 的别名
.. _cn_api_fluid_optimizer_Adagrad:
Adagrad
-------------------------------
.. py:attribute:: paddle.fluid.optimizer.Adagrad
``AdagradOptimizer`` 的别名
.. _cn_api_fluid_optimizer_AdagradOptimizer:
AdagradOptimizer
>>>>>>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.optimizer.AdagradOptimizer(learning_rate, epsilon=1e-06, regularization=None, name=None)
......@@ -37,45 +60,42 @@ http://cs231n.github.io/neural-networks-3/#ada 用于维持数值稳定性,避
optimizer = fluid.optimizer.Adagrad(learning_rate=0.2)
optimizer.minimize(cost)
AdamOptimizer
>>>>>>>>>>>>>
.. py:class:: paddle.fluid.optimizer. AdamOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, regularization=None, name=None)
该函数实现了自适应矩估计优化器,介绍自Adam论文:https://arxiv.org/abs/1412.6980的第二节。Adam是一阶基于梯度下降的算法,基于自适应低阶矩估计。
Adam更新如下:
.. math::
t & = t + 1\\moment\_out & = {\beta}_1 * moment + (1 - {\beta}_1) * grad\\inf\_norm\_out & = max({\beta}_2 * inf\_norm + \epsilon, |grad|)\\learning\_rate & = \frac{learning\_rate}{1 - {\beta}_1^t}\\param\_out & = param - learning\_rate * \frac{moment\_out}{inf\_norm\_out}
参数:
- **learning_rate** (float|Variable)-学习率,用于更新参数。作为数据参数,可以是一个浮点类型值或有一个浮点类型值的变量
- **beta1** (float)-一阶矩估计的指数衰减率
- **beta2** (float)-二阶矩估计的指数衰减率
- **epsilon** (float)-保持数值稳定性的短浮点类型值
- **regularization** - 规则化函数,例如''fluid.regularizer.L2DecayRegularizer
- **name** - 可选名称前缀
.. _cn_api_fluid_optimizer_Adam:
**代码示例**:
Adam
-------------------------------
.. py:attribute:: paddle.fluid.optimizer.Adam
``AdamOptimizer`` 的别名
.. code-block:: python:
optimizer = fluid.optimizer.Adam(learning_rate=0.2)
optimizer.minimize(cost)
.. note::
目前,AdamaxOptimizer不支持稀疏参数优化
.. _cn_api_fluid_optimizer_Adamax:
Adamax
-------------------------------
.. py:attribute:: paddle.fluid.optimizer.Adamax
``AdamaxOptimizer`` 的别名
英文版API文档: :ref:`api_fluid_optimizer_AdagradOptimizer`
.. _cn_api_fluid_optimizer_AdamaxOptimizer:
AdamaxOptimizer
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.optimizer.AdamaxOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, regularization=None, name=None)
......@@ -119,12 +139,68 @@ Adamax 更新规则:
英文版API文档: :ref:`api_fluid_optimizer_AdamaxOptimizer`
.. _cn_api_fluid_optimizer_AdamOptimizer:
AdamOptimizer
-------------------------------
.. py:class:: paddle.fluid.optimizer. AdamOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, regularization=None, name=None)
该函数实现了自适应矩估计优化器,介绍自 `Adam论文 <https://arxiv.org/abs/1412.6980>`_ 的第二节。Adam是一阶基于梯度下降的算法,基于自适应低阶矩估计。
Adam更新如下:
.. math::
t & = t + 1\\moment\_out & = {\beta}_1 * moment + (1 - {\beta}_1) * grad\\inf\_norm\_out & = max({\beta}_2 * inf\_norm + \epsilon, |grad|)\\learning\_rate & = \frac{learning\_rate}{1 - {\beta}_1^t}\\param\_out & = param - learning\_rate * \frac{moment\_out}{inf\_norm\_out}
参数:
- **learning_rate** (float|Variable)-学习率,用于更新参数。作为数据参数,可以是一个浮点类型值或有一个浮点类型值的变量
- **beta1** (float)-一阶矩估计的指数衰减率
- **beta2** (float)-二阶矩估计的指数衰减率
- **epsilon** (float)-保持数值稳定性的短浮点类型值
- **regularization** - 规则化函数,例如''fluid.regularizer.L2DecayRegularizer
- **name** - 可选名称前缀
**代码示例**:
.. code-block:: python:
optimizer = fluid.optimizer.Adam(learning_rate=0.2)
optimizer.minimize(cost)
.. _cn_api_fluid_optimizer_DecayedAdagrad:
DecayedAdagrad
-------------------------------
.. py:attribute:: paddle.fluid.optimizer.DecayedAdagrad
``DecayedAdagradOptimizer`` 的别名
.. _cn_api_fluid_optimizer_DecayedAdagradOptimizer:
DecayedAdagradOptimizer
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.optimizer.DecayedAdagradOptimizer(learning_rate, decay=0.95, epsilon=1e-06, regularization=None, name=None)
......@@ -160,12 +236,27 @@ Decayed Adagrad Optimizer
英文版API文档: :ref:`api_fluid_optimizer_DecayedAdagradOptimizer`
.. _cn_api_fluid_optimizer_Ftrl:
Ftrl
-------------------------------
.. py:attribute:: paddle.fluid.optimizer.Ftrl
``FtrlOptimizer`` 的别名
.. _cn_api_fluid_optimizer_FtrlOptimizer:
FtrlOptimizer
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.optimizer.FtrlOptimizer(learning_rate, l1=0.0, l2=0.0, lr_power=-0.5,regularization=None, name=None)
......@@ -194,9 +285,9 @@ TFRTL 原始论文: ( `https://www.eecs.tufts.edu/~dsculley/papers/ad-click-pred
参数:
- **learning_rate** (float|Variable)-全局学习率。
- **l1** (float)
- **l2** (float)
- **lr_power** (float)
- **l1** (float) - 暂无,请等待后期更新
- **l2** (float) - 暂无,请等待后期更新
- **lr_power** (float) - 暂无,请等待后期更新
- **regularization** - 正则化器,例如 ``fluid.regularizer.L2DecayRegularizer``
- **name** — 可选的名称前缀
......@@ -211,29 +302,32 @@ TFRTL 原始论文: ( `https://www.eecs.tufts.edu/~dsculley/papers/ad-click-pred
_, params_grads = optimizer.minimize(cost)
.. note::
目前, FtrlOptimizer 不支持 sparse gradient
目前, FtrlOptimizer 不支持 sparse gradient
英文版API文档: :ref:`api_fluid_optimizer_FtrlOptimizer`
.. _cn_api_fluid_optimizer_LarsMomentum:
LarsMomentum
>>>>>>>>>>>>>>
-------------------------------
:code:`fluid.optimizer.LarsMomentumOptimizer` 的别名
.. py:attribute:: paddle.fluid.optimizer.LarsMomentum
``fluid.optimizer.LarsMomentumOptimizer`` 的别名
英文版API文档: :ref:`api_fluid_optimizer_LarsMomentum`
.. _cn_api_fluid_optimizer_LarsMomentumOptimizer:
LarsMomentumOptimizer
>>>>>>>>>>>>>>>>>>>>>>>>
-------------------------------
.. py:function:: paddle.fluid.optimizer.LarsMomentumOptimizer(learning_rate, momentum, lars_coeff=0.001, lars_weight_decay=0.0005, regularization=None, name=None)
......@@ -265,12 +359,14 @@ LARS支持的Momentum优化器
英文版API文档: :ref:`api_fluid_optimizer_LarsMomentumOptimizer`
.. _cn_api_fluid_optimizer_ModelAverage:
ModelAverage
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.optimizer.ModelAverage(average_window_rate, min_average_window=10000, max_average_window=10000, regularization=None, name=None)
......@@ -315,12 +411,25 @@ ModelAverage
英文版API文档: :ref:`api_fluid_optimizer_ModelAverage`
.. _cn_api_fluid_optimizer_Momentum:
Momentum
-------------------------------
.. py:attribute:: paddle.fluid.optimizer.Momentum
``MomentumOptimizer`` 的别名
.. _cn_api_fluid_optimizer_MomentumOptimizer:
MomentumOptimizer
>>>>>>>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.optimizer.MomentumOptimizer(learning_rate, momentum, use_nesterov=False, regularization=None, name=None)
......@@ -349,12 +458,14 @@ MomentumOptimizer
英文版API文档: :ref:`api_fluid_optimizer_MomentumOptimizer`
.. _cn_api_fluid_optimizer_RMSPropOptimizer:
RMSPropOptimizer
>>>>>>>>>>>>>>>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.optimizer.RMSPropOptimizer(learning_rate, rho=0.95, epsilon=1e-06, momentum=0.0, centered=False, regularization=None, name=None)
......@@ -406,12 +517,27 @@ RMSPropOptimizer
英文版API文档: :ref:`api_fluid_optimizer_RMSPropOptimizer`
.. _cn_api_fluid_optimizer_SGD:
SGD
-------------------------------
.. py:attribute:: paddle.fluid.optimizer.SGD
``SGDOptimizer`` 的别名
.. _cn_api_fluid_optimizer_SGDOptimizer:
SGDOptimizer
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.optimizer.SGDOptimizer(learning_rate, regularization=None, name=None)
......@@ -438,5 +564,7 @@ SGDOptimizer
英文版API文档: :ref:`api_fluid_optimizer_SGDOptimizer`
#################
fluid.param_attr
#################
.. _cn_api_fluid_param_attr_ParamAttr:
ParamAttr
-------------------------------
.. py:class:: paddle.fluid.param_attr.ParamAttr(name=None, initializer=None, learning_rate=1.0, regularizer=None, trainable=True, gradient_clip=None, do_model_average=False)
该类代表了参数的各种属性。 为了使神经网络训练过程更加流畅,用户可以根据需要调整参数属性。比如learning rate(学习率), regularization(正则化), trainable(可训练性), do_model_average(平均化模型)和参数初始化方法.
参数:
- **name** (str) – 参数名。默认为None。
- **initializer** (Initializer) – 初始化该参数的方法。 默认为None
- **learning_rate** (float) – 参数的学习率。计算方法为 global_lr*parameter_lr∗scheduler_factor。 默认为1.0
- **regularizer** (WeightDecayRegularizer) – 正则因子. 默认为None
- **trainable** (bool) – 该参数是否可训练。默认为True
- **gradient_clip** (BaseGradientClipAttr) – 减少参数梯度的方法。默认为None
- **do_model_average** (bool) – 该参数是否服从模型平均值。默认为False
**代码示例**
.. code-block:: python
w_param_attrs = fluid.ParamAttr(name="fc_weight",
learning_rate=0.5,
regularizer=fluid.L2Decay(1.0),
trainable=True)
y_predict = fluid.layers.fc(input=x, size=10, param_attr=w_param_attrs)
.. _cn_api_fluid_param_attr_WeightNormParamAttr:
WeightNormParamAttr
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.param_attr.WeightNormParamAttr(dim=None, name=None, initializer=None, learning_rate=1.0, regularizer=None, trainable=True, gradient_clip=None, do_model_average=False)
......@@ -41,39 +80,11 @@ WeightNormParamAttr
英文版API文档: :ref:`api_fluid_param_attr_WeightNormParamAttr`
.. _cn_api_fluid_ParamAttr:
ParamAttr
>>>>>>>>>>>>>>>>>>>>>>>>>
.. py:class:: paddle.fluid.param_attr.ParamAttr(name=None, initializer=None, learning_rate=1.0, regularizer=None, trainable=True, gradient_clip=None, do_model_average=False)
该类代表了参数的各种属性。 为了使神经网络训练过程更加流畅,用户可以根据需要调整参数属性。比如learning rate(学习率), regularization(正则化), trainable(可训练性), do_model_average(平均化模型)和参数初始化方法.
参数:
- **name** (str) – 参数名。默认为None。
- **initializer** (Initializer) – 初始化该参数的方法。 默认为None
- **learning_rate** (float) – 参数的学习率。计算方法为 global_lr*parameter_lr∗scheduler_factor。 默认为1.0
- **regularizer** (WeightDecayRegularizer) – 正则因子. 默认为None
- **trainable** (bool) – 该参数是否可训练。默认为True
- **gradient_clip** (BaseGradientClipAttr) – 减少参数梯度的方法。默认为None
- **do_model_average** (bool) – 该参数是否服从模型平均值。默认为False
**代码示例**
.. code-block:: python
w_param_attrs = fluid.ParamAttr(name="fc_weight",
learning_rate=0.5,
regularizer=fluid.L2Decay(1.0),
trainable=True)
y_predict = fluid.layers.fc(input=x, size=10, param_attr=w_param_attrs)
英文版API文档: :ref:`api_fluid_ParamAttr`
#################
fluid.profiler
#################
......@@ -8,7 +7,7 @@
.. _cn_api_fluid_profiler_cuda_profiler:
cuda_profiler
>>>>>>>>>>>>
-------------------------------
.. py:function:: paddle.fluid.profiler.cuda_profiler(*args, **kwds)
......@@ -54,12 +53,14 @@ CUDA分析器。通过CUDA运行时应用程序编程接口对CUDA程序进行
英文版API文档: :ref:`api_fluid_profiler_cuda_profiler`
.. _cn_api_fluid_profiler_profiler:
profiler
>>>>>>>>>>>>
-------------------------------
.. py:function:: paddle.fluid.profiler.profiler(*args, **kwds)
......@@ -93,12 +94,14 @@ profile interface 。与cuda_profiler不同,此profiler可用于分析CPU和GP
英文版API文档: :ref:`api_fluid_profiler_profiler`
.. _cn_api_fluid_profiler_reset_profiler:
reset_profiler
>>>>>>>>>>>>
-------------------------------
.. py:function:: paddle.fluid.profiler.reset_profiler()
......@@ -118,12 +121,14 @@ reset_profiler
英文版API文档: :ref:`api_fluid_profiler_reset_profiler`
.. _cn_api_fluid_profiler_start_profiler:
start_profiler
>>>>>>>>>>>>
-------------------------------
.. py:function:: paddle.fluid.profiler.start_profiler(state)
......@@ -157,12 +162,14 @@ start_profiler
英文版API文档: :ref:`api_fluid_profiler_start_profiler`
.. _cn_api_fluid_profiler_stop_profiler:
stop_profiler
>>>>>>>>>>>>
-------------------------------
.. py:function::paddle.fluid.profiler.stop_profiler(sorted_key=None, profile_path='/tmp/profile')
......@@ -192,5 +199,7 @@ stop_profiler
英文版API文档: :ref:`api_fluid_profiler_stop_profiler`
#######################
fluid.recordio_writer
#######################
.. _cn_api_fluid_recordio_writer_convert_reader_to_recordio_file:
convert_reader_to_recordio_file
-------------------------------
.. py:function:: paddle.fluid.recordio_writer.convert_reader_to_recordio_file(filename, reader_creator, feeder, compressor=Compressor.Snappy, max_num_records=1000, feed_order=None)
将 Python reader 转换为recordio文件
**代码示例:**
.. code-block:: python
import paddle.fluid as fluid
import paddle.dataset.mnist as mnist
import paddle
tmp_program = fluid.Program()
with fluid.program_guard(tmp_program):
img = fluid.layers.data(name='img', shape=[784])
label = fluid.layers.data(name='label', shape=[1], dtype='int64')
feeder = fluid.DataFeeder(feed_list=[img, label], place=fluid.CPUPlace())
# mnist.recordio 会在当前目录生成
fluid.recordio_writer.convert_reader_to_recordio_file(
filename="mnist.recordio",
reader_creator=paddle.batch(mnist.train(), batch_size=32),
feeder=feeder)
参数:
- **filename** (str) - recordio文件名
- **reader_creator** (callable) - Python reader的创造器。可参考 :ref:`api_guide_python_reader`
- **feeder** (DataFeeder) - 数据处理实例。用于将 :code:`reader_creator` 转换为 :code:`lod_tensor`
- **compressor** – 必须在 :code:`fluid.core.RecordIOWriter.Compressor.Snappy` 或 :code:` fluid.core.RecordIOWriter.Compressor.NoCompress` 中, 默认情况下使用 :code:`Snappy`
- **max_num_records** (int) – 一个 chuck 中 records 的最大数量。每个 records 都是 reader 函数的返回值
- **feed_order** (list) - reader 返回的变量名的顺序
返回: 保存的 record 的数目
返回类型: int
.. _cn_api_fluid_recordio_writer_convert_reader_to_recordio_files:
convert_reader_to_recordio_files
-------------------------------
.. py:function:: paddle.fluid.recordio_writer.convert_reader_to_recordio_files(filename, batch_per_file, reader_creator, feeder, compressor=Compressor.Snappy, max_num_records=1000, feed_order=None)
该函数可以将一个python驱动的reader(数据读取器)转变为多个recodio文件。
该API实现的功能和 ``convert_reader_to_recordio_file`` 基本相同,只不过本函数会生成多个recordio文件。
每个文件最多存储 ``batch_per_file`` 条记录。
请参照 :ref:`cn_api_fluid_recordio_writer_convert_reader_to_recordio_file` 获取更详细的介绍。
#################
###################
fluid.regularizer
#################
###################
.. _cn_api_fluid_regularizer_L1Decay:
L1Decay
-------------------------------
.. py:attribute:: paddle.fluid.regularizer.L1Decay
``L1DecayRegularizer`` 的别名
.. _cn_api_fluid_regularizer_L1DecayRegularizer:
L1DecayRegularizer
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.regularizer.L1DecayRegularizer(regularization_coeff=0.0)
......@@ -37,12 +45,26 @@ L1正则将会稀疏化权重矩阵。
英文版API文档: :ref:`api_fluid_regularizer_L1DecayRegularizer`
.. _cn_api_fluid_regularizer_L2Decay:
L2Decay
-------------------------------
.. py:attribute:: paddle.fluid.regularizer.L2Decay
``L2DecayRegularizer`` 的别名
.. _cn_api_fluid_regularizer_L2DecayRegularizer:
L2DecayRegularizer
>>>>>>>>>>>>
-------------------------------
.. py:class:: paddle.fluid.regularizer.L2DecayRegularizer(regularization_coeff=0.0)
......@@ -68,5 +90,7 @@ L2DecayRegularizer
英文版API文档: :ref:`api_fluid_regularizer_L2DecayRegularizer`
#################
fluid.transpiler
#################
.. _cn_api_fluid_transpiler_DistributeTranspiler:
DistributeTranspiler
-------------------------------
.. py:class:: paddle.fluid.transpiler.DistributeTranspiler (config=None)
该类可以把fluid program转变为分布式数据并行计算程序(distributed data-parallelism programs),可以有Pserver和NCCL2两种模式。
当program在Pserver(全称:parameter server)模式下, ``main_program`` (主程序)转为使用一架远程parameter server(即pserver,参数服务器)来进行参数优化,并且优化图会被输入到一个pserver program中。
在NCCL2模式下,transpiler会在 ``startup_program`` 中附加一个 ``NCCL_ID`` 广播算子(broadcasting operators)来实现在该集群中所有工作结点共享``NCCL_ID`` 。
调用 ``transpile_nccl2`` 后, 你 **必须** 将 ``trainer_id`` , ``num_trainers`` 参数提供给 ``ParallelExecutor`` 来启动NCCL2分布式模式。
**代码示例**
.. code-block:: python
# for pserver mode
pserver_endpoints = "192.168.0.1:6174,192.168.0.2:6174"
trainer_endpoints = "192.168.0.1:6174,192.168.0.2:6174"
current_endpoint = "192.168.0.1:6174"
trainer_id = 0
trainers = 4
role = os.getenv("PADDLE_TRAINING_ROLE")
t = fluid.DistributeTranspiler()
t.transpile(
trainer_id, pservers=pserver_endpoints, trainers=trainers)
if role == "PSERVER":
pserver_program = t.get_pserver_program(current_endpoint)
pserver_startup_program = t.get_startup_program(current_endpoint,
pserver_program)
elif role == "TRAINER":
trainer_program = t.get_trainer_program()
# for nccl2 mode
config = fluid.DistributeTranspilerConfig()
config.mode = "nccl2"
t = fluid.DistributeTranspiler(config=config)
t.transpile(trainer_id, workers=workers, current_endpoint=curr_ep)
exe = fluid.ParallelExecutor(
use_cuda,
loss_name=loss_var.name,
num_trainers=len(trainers.split(",)),
trainer_id=trainer_id
)
.. py:method:: transpile(trainer_id, program=None, pservers='127.0.0.1:6174', trainers=1, sync_mode=True, startup_program=None, current_endpoint='127.0.0.1:6174')
该方法可以运行该transpiler(转译器)。
参数:
- **trainer_id** (int) – 当前Trainer worker的id, 如果有n个Trainer worker, id 取值范围为0 ~ n-1
- **program** (Program|None) – 待transpile(转译)的program, 缺省为 ``fluid.default_main_program()``
- **startup_program** (Program|None) - 要转译的 ``startup_program`` ,默认为 ``fluid.default_startup_program()``
- **pservers** (str) – 内容为Pserver列表的字符串,格式为:按逗号区分不同的Pserver,每个Pserver的格式为 *ip地址:端口号*
- **trainers** (int|str) – 在Pserver模式下,该参数指Trainer机的个数;在nccl2模式下,它是一个内容为Trainer终端列表的字符串
- **sync_mode** (bool) – 是否做同步训练(synchronous training), 默认为True
- **startup_program** (Program|None) – 待transpile(转译)的startup_program,默认为 ``fluid.default_main_program()``
- **current_endpoint** (str) – 当需要把program转译(transpile)至NCCL2模式下时,需要将当前endpoint(终端)传入该参数。Pserver模式不使用该参数
.. py:method:: get_trainer_program(wait_port=True)
该方法可以得到Trainer侧的program。
返回: Trainer侧的program
返回类型: Program
.. py:method:: get_pserver_program(endpoint)
该方法可以得到Pserver(参数服务器)侧的程序
参数:
- **endpoint** (str) – 当前Pserver终端
返回: 当前Pserver需要执行的program
返回类型: Program
.. py:method:: get_pserver_programs(endpoint)
该方法可以得到Pserver侧用于分布式训练的 ``main_program`` 和 ``startup_program`` 。
参数:
- **endpoint** (str) – 当前Pserver终端
返回: (main_program, startup_program), “Program”类型的元组
返回类型: tuple
.. py:method:: get_startup_program(endpoint, pserver_program=None, startup_program=None)
**该函数已停止使用**
获取当前Pserver的startup_program,如果有多个被分散到不同blocks的变量,则修改operator的输入变量。
参数:
- **endpoint** (str) – 当前Pserver终端
- **pserver_program** (Program) – 已停止使用。 先调用get_pserver_program
- **startup_program** (Program) – 已停止使用。应在初始化时传入startup_program
返回: Pserver侧的startup_program
返回类型: Program
.. _cn_api_fluid_transpiler_DistributeTranspilerConfig:
DistributeTranspilerConfig
-------------------------------
.. py:class:: paddle.fluid.transpiler.DistributeTranspilerConfig
.. py:method:: slice_var_up (bool)
为Pserver将张量切片, 默认为True
.. py:method:: split_method (PSDispatcher)
可使用 RoundRobin 或者 HashName
注意: 尝试选择最佳方法来达到负载均衡。
.. py:attribute:: min_block_size (int)
最小数据块的大小
注意: 根据:https://github.com/PaddlePaddle/Paddle/issues/8638#issuecomment-369912156, 当数据块大小超过2MB时,我们可以有效地使用带宽。如果你想更改它,请详细查看slice_variable函数。
.. _cn_api_fluid_transpiler_HashName:
HashName
-------------------------------
.. py:class:: paddle.fluid.transpiler.HashName(pserver_endpoints)
使用 python ``Hash()`` 函数将变量名散列到多个pserver终端。
参数:
- **pserver_endpoints** (list) - endpoint (ip:port)的 list
.. _cn_api_fluid_transpiler_memory_optimize:
memory_optimize
-------------------------------
.. py:function:: paddle.fluid.transpiler.memory_optimize(input_program, skip_opt_set=None, print_log=False, level=0, skip_grads=False)
通过重用var内存来优化内存。
注意:它不支持block中嵌套子block。
参数:
- **input_program** (str) – 输入Program。
- **skip_opt_set** (set) – set中的vars将不被内存优化。
- **print_log** (bool) – 是否打印debug日志。
- **level** (int) - 如果 level=0 并且shape是完全相等,则重用。
返回: None
.. _cn_api_fluid_transpiler_release_memory:
release_memory
-------------------------------
.. py:function:: paddle.fluid.transpiler.release_memory(input_program, skip_opt_set=None)
该函数可以调整输入program,插入 ``delete_op`` 删除算子,提前删除不需要的变量。
改动是在变量本身上进行的。
**提醒** : 该API还在试验阶段,会在后期版本中删除。不建议用户使用。
参数:
- **input_program** (Program) – 在此program中插入 ``delete_op``
- **skip_opt_set** (set) – 在内存优化时跳过的变量的集合
返回: None
.. _cn_api_fluid_transpiler_RoundRobin:
RoundRobin
-------------------------------
.. py:class:: paddle.fluid.transpiler.RoundRobin(pserver_endpoints)
使用 ``RondRobin`` 方法将变量分配给服务器端点。
`RondRobin <https://en.wikipedia.org/wiki/Round-robin_scheduling>`_
参数:
- **pserver_endpoints** (list) - endpoint (ip:port)的 list
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册