diff --git a/doc/fluid/advanced_usage/deploy/index_cn.rst b/doc/fluid/advanced_usage/deploy/index_cn.rst index 6be367358338d073e5dbd47e7b4874e1069acc59..235fd1055430f9b62b2279c654b66bb384cf8ed1 100644 --- a/doc/fluid/advanced_usage/deploy/index_cn.rst +++ b/doc/fluid/advanced_usage/deploy/index_cn.rst @@ -2,7 +2,7 @@ 预测部署 ######## -- `原生预测引擎 `_ :介绍了支持模型部署上线的Fluid C++ API +- `服务器端部署 `_ :介绍了支持模型部署上线的Fluid C++ API - `移动端部署 `_:介绍了 PaddlePaddle组织下的嵌入式平台深度学习框架Paddle-Mobile diff --git a/doc/fluid/advanced_usage/deploy/inference/windows_cpp_inference.md b/doc/fluid/advanced_usage/deploy/inference/windows_cpp_inference.md index b6a5a2168be98dab64d67d4ac9653340465e21d9..6340f330ba1962430c98d852033c40879170a175 100644 --- a/doc/fluid/advanced_usage/deploy/inference/windows_cpp_inference.md +++ b/doc/fluid/advanced_usage/deploy/inference/windows_cpp_inference.md @@ -48,33 +48,33 @@ Cmake可以在[官网进行下载](https://cmake.org/download/),并添加到 执行完毕后,build 目录如图所示,打开箭头指向的 solution 文件:

- +

修改编译属性为 `/MT` :

- +

- +

编译生成选项改成 `Release` 。

- +

- +

将提供的依赖包中,Release下的openblas和模型文件拷贝到编译生成的Release下。

- +

通过cmd进到Release目录执行: @@ -88,6 +88,6 @@ Cmake可以在[官网进行下载](https://cmake.org/download/),并添加到 `simple_on_word2vec.exe --dirname=.\word2vec.inference.model`

- +

diff --git a/doc/fluid/api_cn/clip_cn.rst b/doc/fluid/api_cn/clip_cn.rst index 4de9347b8da7604d1300970420b54603bb8805d6..70b4e6e99e17bfe15b80e6d9970e151b4716aea5 100644 --- a/doc/fluid/api_cn/clip_cn.rst +++ b/doc/fluid/api_cn/clip_cn.rst @@ -108,12 +108,12 @@ GradientClipByNorm .. code-block:: python - w_param_attrs = ParamAttr(name=None, - initializer=UniformInitializer(low=-1.0, high=1.0, seed=0), + w_param_attrs = fluid.ParamAttr(name=None, + initializer=fluid.initializer.UniformInitializer(low=-1.0, high=1.0, seed=0), learning_rate=1.0, - regularizer=L1Decay(1.0), + regularizer=fluid.regularizer.L1Decay(1.0), trainable=True, - clip=GradientClipByNorm(clip_norm=2.0)) + clip=fluid.clip.GradientClipByNorm(clip_norm=2.0)) y_predict = fluid.layers.fc(input=x, size=1, param_attr=w_param_attrs) @@ -147,12 +147,12 @@ GradientClipByValue .. code-block:: python - w_param_attrs = ParamAttr(name=None, - initializer=UniformInitializer(low=-1.0, high=1.0, seed=0), + w_param_attrs = fluid.ParamAttr(name=None, + initializer=fluid.initializer.UniformInitializer(low=-1.0, high=1.0, seed=0), learning_rate=1.0, - regularizer=L1Decay(1.0), + regularizer=fluid.regualrizer.L1Decay(1.0), trainable=True, - clip=GradientClipByValue(-1.0, 1.0)) + clip=fluid.clip.GradientClipByValue(-1.0, 1.0)) y_predict = fluid.layers.fc(input=x, size=1, param_attr=w_param_attrs) diff --git a/doc/fluid/api_cn/executor_cn.rst b/doc/fluid/api_cn/executor_cn.rst index 595fc0aed2077e0a982045799515ed6af8e50a08..8354f203b131ed01dadb71830666d29d377a1306 100644 --- a/doc/fluid/api_cn/executor_cn.rst +++ b/doc/fluid/api_cn/executor_cn.rst @@ -81,10 +81,11 @@ feed map为该program提供输入数据。fetch_list提供program训练结束后 .. code-block:: python - data = layers.data(name='X', shape=[1], dtype='float32') - hidden = layers.fc(input=data, size=10) - layers.assign(hidden, out) - loss = layers.mean(out) + 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) + loss = fluid.layers.mean(out) adam = fluid.optimizer.Adam() adam.minimize(loss) @@ -93,8 +94,8 @@ feed map为该program提供输入数据。fetch_list提供program训练结束后 cpu = core.CPUPlace() - exe = Executor(cpu) - exe.run(default_startup_program()) + exe = fluid.Executor(cpu) + exe.run(fluid.default_startup_program()) .. code-block:: python diff --git a/doc/fluid/api_cn/fluid_cn.rst b/doc/fluid/api_cn/fluid_cn.rst index 813216b0deeda5bb6d18044cd19ae0089362c0e3..2bf0c08ad190f856d1f05f0417f5fd189fa3b3c9 100644 --- a/doc/fluid/api_cn/fluid_cn.rst +++ b/doc/fluid/api_cn/fluid_cn.rst @@ -1060,12 +1060,12 @@ name_scope .. code-block:: python - with name_scope("encoder"): - ... - with name_scope("decoder"): - ... - with name_scope("attention"): - ... + with name_scope("encoder"): + ... + with name_scope("decoder"): + ... + with name_scope("attention"): + ... diff --git a/doc/fluid/api_cn/index_cn.rst b/doc/fluid/api_cn/index_cn.rst index fb9dbb1896ee744364ef4927e2a07141f6edd038..21c1ac5510e8533f6acc78f749acf53fad1c31e4 100644 --- a/doc/fluid/api_cn/index_cn.rst +++ b/doc/fluid/api_cn/index_cn.rst @@ -16,7 +16,7 @@ API io_cn.rst layers_cn.rst metrics_cn.rst - net_cn.rst + nets_cn.rst optimizer_cn.rst param_attr_cn.rst profiler_cn.rst diff --git a/doc/fluid/api_cn/layers_cn.rst b/doc/fluid/api_cn/layers_cn.rst index 6cbc07ca696359e347948afbe3772f20c7b27ae2..b365c380c32cbc966fca9fd6d2b9866e26995566 100644 --- a/doc/fluid/api_cn/layers_cn.rst +++ b/doc/fluid/api_cn/layers_cn.rst @@ -1723,7 +1723,12 @@ BRelu 激活函数 - **name** (str|None) - 该层的名称(可选)。如果设置为None,该层将被自动命名 +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[2,3,16,16], dtype=”float32”) + y = fluid.layers.brelu(x, t_min=1.0, t_max=20.0) @@ -1835,7 +1840,7 @@ clip clip算子 -clip运算符限制给定输入的值在一个区间内。间隔使用参数“min”和“max”来指定:公式为 +clip运算符限制给定输入的值在一个区间内。间隔使用参数"min"和"max"来指定:公式为 .. math:: Out=min(max(X,min),max) @@ -1850,9 +1855,13 @@ clip运算符限制给定输入的值在一个区间内。间隔使用参数“m 返回类型: 输出(Variable)。 +**代码示例:** +.. code-block:: python - + input = fluid.layers.data( + name='data', shape=[1], dtype='float32') + reward = fluid.layers.clip(x=input, min=-1.0, max=1.0) @@ -1875,13 +1884,6 @@ ClipByNorm算子 其中, :math:`norm(X)` 代表 ``x`` 的L2范数。 -例如, - -.. code-block:: python - - data = fluid.layer.data( name=’data’, shape=[2, 4, 6], dtype=’float32’) - reshaped = fluid.layers.clip_by_norm( x=data, max_norm=0.5) - 参数: - **x** (Variable)- (Tensor) clip_by_norm运算的输入,维数必须在[1,9]之间。 @@ -1892,7 +1894,13 @@ ClipByNorm算子 返回类型: Variable +**代码示例:** + +.. code-block:: python + input = fluid.layers.data( + name='data', shape=[1], dtype='float32') + reward = fluid.layers.clip_by_norm(x=input, max_norm=1.0) @@ -3409,7 +3417,12 @@ ELU激活层(ELU Activation Operator) 返回类型: 输出(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.elu(x, alpha=0.2) @@ -3975,7 +3988,12 @@ sigmoid的分段线性逼近(https://arxiv.org/abs/1603.00391),比sigmoid快 - **name** (str|None) - 这个层的名称(可选)。如果设置为None,该层将被自动命名。 +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.hard_sigmoid(x, slope=0.3, offset=0.8) @@ -4213,25 +4231,36 @@ image_resize 输入张量的shape为(num_batch, channels, in_h, in_w),并且调整大小只适用于最后两个维度(高度和宽度)。 -支持重新取样方法: 双线性插值 - +支持重新取样方法: + + BILINEAR:双线性插值 + NEAREST:最近邻插值 + 参数: - **input** (Variable) - 图片调整层的输入张量,这是一个shape=4的张量(num_batch, channels, in_h, in_w) - **out_shape** (list|tuple|Variable|None) - 图片调整层的输出,shape为(out_h, out_w)。默认值:None - **scale** (float|None)-输入的高度或宽度的乘数因子 。 out_shape和scale至少要设置一个。out_shape的优先级高于scale。默认值:None - **name** (str|None) - 该层的名称(可选)。如果设置为None,该层将被自动命名 - **resample** (str) - 重采样方法。目前只支持“双线性”。默认值:双线性插值 + - **actual_shape** (Variable) - 可选输入,用于动态指定输出形状。如果指定actual_shape,图像将根据给定的形状调整大小,而不是根据指定形状的 :code:`out_shape` 和 :code:`scale` 进行调整。也就是说, :code:`actual_shape` 具有最高的优先级。如果希望动态指定输出形状,建议使用 :code:`actual_shape` 而不是 :code:`out_shape` 。在使用actual_shape指定输出形状时,还需要设置out_shape和scale之一,否则在图形构建阶段会出现错误。默认值:None + 返回: 4维tensor,shape为 (num_batches, channls, out_h, out_w). 返回类型: 变量(variable) +抛出异常: + - :code:`TypeError` - out_shape应该是一个列表、元组或变量。 + - :code:`TypeError` - actual_shape应该是变量或None + - :code:`ValueError` - image_resize的"resample"只能是"BILINEAR"或"NEAREST"。 + - :code:`ValueError` - out_shape 和 scale 不能为 None + - :code:`ValueError` - out_shape 的长度必须为 2 **代码示例** .. code-block:: python - out = fluid.layers.image_resize(input, out_shape=[12, 12]) + out = fluid.layers.image_resize(input, out_shape=[12, 12], resample="NEAREST") @@ -4436,7 +4465,12 @@ LeakyRelu 激活函数 - **alpha** (FLOAT|0.02) - 负斜率,值很小。 - **name** (str|None) - 此层的名称(可选)。如果设置为None,该层将被自动命名。 +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[2,3,16,16], dtype="float32") + y = fluid.layers.leaky_relu(x, alpha=0.01) @@ -4710,6 +4744,16 @@ logical_and算子 返回类型: 输出(Variable)。 +**代码示例:** + +.. code-block:: python + + left = fluid.layers.data( + name='left', shape=[1], dtype='int32') + right = fluid.layers.data( + name='right', shape=[1], dtype='int32') + result = fluid.layers.logical_and(x=left, y=right) + @@ -4742,7 +4786,13 @@ logical_not算子 返回类型: 输出(Variable)。 +**代码示例:** +.. code-block:: python + + left = fluid.layers.data( + name='left', shape=[1], dtype='int32') + result = fluid.layers.logical_not(x=left) @@ -4776,7 +4826,15 @@ logical_or算子 +**代码示例:** + +.. code-block:: python + left = fluid.layers.data( + name='left', shape=[1], dtype='int32') + right = fluid.layers.data( + name='right', shape=[1], dtype='int32') + result = fluid.layers.logical_or(x=left, y=right) @@ -4809,7 +4867,15 @@ logical_xor算子 +**代码示例:** + +.. code-block:: python + left = fluid.layers.data( + name='left', shape=[1], dtype='int32') + right = fluid.layers.data( + name='right', shape=[1], dtype='int32') + result = fluid.layers.logical_xor(x=left, y=right) @@ -5827,7 +5893,12 @@ pow 返回类型: 输出(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.pow(x, factor=2.0) @@ -6254,7 +6325,12 @@ relu6激活算子(Relu6 Activation Operator) 返回类型: 输出(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.relu6(x, threshold=6.0) @@ -6267,10 +6343,12 @@ relu6激活算子(Relu6 Activation Operator) reshape ------------------------------- +.. py:function:: paddle.fluid.layers.reshape(x, shape, actual_shape=None, act=None, inplace=False, name=None) + 保持输入张量数据不变的情况下,改变张量的形状。 -目标形状可由 ``shape`` 或 ``actual_shape`` 给出。``shape``是一个整数列表,而 ``actual_shape``是一个张量变量。 -当两个属性同时被指定时,``actual_shape``的优先级高于 ``shape``,但在编译时仍然应该正确地设置shape以保证形状推断。 +目标形状可由 ``shape`` 或 ``actual_shape`` 给出。``shape`` 是一个整数列表,而 ``actual_shape`` 是一个张量变量。 +当两个属性同时被指定时,``actual_shape`` 的优先级高于 ``shape`` ,但在编译时仍然应该正确地设置 ``shape`` 以保证形状推断。 在指定目标shape时存在一些技巧: @@ -6293,10 +6371,10 @@ reshape - **shape** (list) - 新的形状。新形状最多只能有一个维度为-1。 - **actual_shape** (variable) - 一个可选的输入。如果提供,则根据 ``actual_shape`` 进行 reshape,而不是指定 ``shape`` 。也就是说,actual_shape具有比shape更高的优先级。 - **act** (str) - 对reshpe后的tensor变量执行非线性激活 - - **inplace** (bool) - 如果在多个操作符中使用x,则 ``inplace``必须设置为False。如果该标志设置为True,则重用输入x进行reshape,这将改变张量变量x的形状,并可能在多个操作符中使用x时造成错误。如果为False,则保留形状x,并创建一个新的输出张量变量,该张量变量的数据是从输入x复制的,但经过了重构。 + - **inplace** (bool) - 如果在多个操作符中使用x,则 ``inplace`` 必须设置为False。如果该标志设置为True,则重用输入x进行reshape,这将改变张量变量x的形状,并可能在多个操作符中使用x时造成错误。如果为False,则保留形状x,并创建一个新的输出张量变量,该张量变量的数据是从输入x复制的,但经过了重构。 - **name** (str) - 可选变量,此层的名称 -返回:如果 ``act`` 为 ``None``,返回reshape后的tensor变量。如果 ``inplace``为 ``False``,将返回一个新的Tensor变量,否则,将改变x自身。如果 ``act``不是 ``None``,则返回激活的张量变量。 +返回:如果 ``act`` 为 ``None``,返回reshape后的tensor变量。如果 ``inplace`` 为 ``False`` ,将返回一个新的Tensor变量,否则,将改变x自身。如果 ``act`` 不是 ``None`` ,则返回激活的张量变量。 抛出异常:``TypeError`` - 如果 actual_shape 既不是变量也不是None @@ -6325,6 +6403,8 @@ resize_bilinear .. py:function:: paddle.fluid.layers.resize_bilinear(input, out_shape=None, scale=None, name=None) +根据指定的out_shape执行双线性插值调整输入大小,输出形状按优先级由actual_shape、out_shape和scale指定。 + 双线性插值是对线性插值的扩展,即二维变量方向上(如h方向和w方向)插值。关键思想是先在一个方向上执行线性插值,然后再在另一个方向上执行线性插值。 `详情请参阅维基百科 https://en.wikipedia.org/wiki/Bilinear_interpolation `_ @@ -6334,11 +6414,16 @@ resize_bilinear - **out_shape** (Variable) - 一维张量,包含两个数。第一个数是高度,第二个数是宽度。 - **scale** (float|None) - 用于输入高度或宽度的乘数因子。out_shape和scale至少要设置一个。out_shape的优先级高于scale。默认值:None。 - **name** (str|None) - 输出变量名。 - + - **actual_shape** (Variable) - 可选输入,用于动态指定输出形状。如果指定actual_shape,图像将根据给定的形状调整大小,而不是根据指定形状的 :code:`out_shape` 和 :code:`scale` 进行调整。也就是说, :code:`actual_shape` 具有最高的优先级。如果希望动态指定输出形状,建议使用 :code:`actual_shape` 而不是 :code:`out_shape` 。在使用actual_shape指定输出形状时,还需要设置out_shape和scale之一,否则在图形构建阶段会出现错误。默认值:None + 返回: 输出的维度是(N x C x out_h x out_w) +**代码示例:** + +.. code-block:: python + out = fluid.layers.resize_bilinear(input, out_shape=[12, 12]) @@ -7820,7 +7905,12 @@ SoftRelu 激活函数 - **threshold** (FLOAT|40.0) - SoftRelu的阈值 - **name** (str|None) - 该层的名称(可选)。如果设置为None,该层将被自动命名 +**代码示例:** +.. code-block:: python + + x = fluid.layers.data(name=”x”, shape=[2,3,16,16], dtype=”float32”) + y = fluid.layers.soft_relu(x, threshold=20.0) @@ -8185,7 +8275,12 @@ STanh 激活算子(STanh Activation Operator.) 返回类型: 输出(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.stanh(x, scale_a=0.67, scale_b=1.72) @@ -8242,7 +8337,12 @@ Swish 激活函数 返回类型: output(Variable) +**代码示例:** + +.. code-block:: python + x = fluid.layers.data(name="x", shape=[3,10,32,32], dtype="float32") + y = fluid.layers.swish(x, beta=2.0) diff --git a/doc/fluid/api_cn/metrics_cn.rst b/doc/fluid/api_cn/metrics_cn.rst index ab7c8b6e83983f4abe9ef6e192431600a9743d20..64cdf50d68befc74509729785ec34aeb836b5ec9 100644 --- a/doc/fluid/api_cn/metrics_cn.rst +++ b/doc/fluid/api_cn/metrics_cn.rst @@ -208,34 +208,51 @@ https://arxiv.org/abs/1512.02325 1. 根据detectors中的输入和label,计算 true positive 和 false positive 2. 计算map,支持 ‘11 point’ and ‘integral’ - + +参数: + - **input** (Variable) – detection的结果,一个 shape=[M, 6] 的 lodtensor。布局为[label, confidence, xmin, ymin, xmax, ymax] + - **gt_label** (Variable) – ground truth label 的索引,它是一个形状为[N, 1]的lodtensor + - **gt_box** (Variable) – ground truth bounds box (bbox),是一个具有形状的lod张量[N, 4]。布局是[xmin, ymin, xmax, ymax] + - **gt_difficult** (Variable|None) – 指定这个ground truth是否是一个difficult bounding bbox,它可以是一个 shape=[N, 1]的LoDTensor,也可以不被指定。如果设置为None,则表示所有的ground truth标签都不是difficult bbox。 + - **class_num** (int) – 检测类别的数目 + - **background_label** (int) – 背景标签的索引,背景标签将被忽略。如果设置为-1,则所有类别将被考虑,默认为0。 + - **overlap_threshold** (float) – 判断真假阳性的阈值,默认为0.5 + - **evaluate_difficult** (bool) – 是否考虑 difficult ground truth 进行评价,默认为 True。当 gt_difficult 为 None 时,这个参数不起作用。 + - **ap_version** (string) – 平均精度的计算方法,必须是 "integral" 或 "11point"。详情请查看 https://sanchom.wordpress.com/tag/averageprecision/。 其中,11point为:11-point 插值平均精度。积分: precision-recall曲线的自然积分。 **代码示例** .. code-block:: python - pred = fluid.layers.fc(input=data, size=1000, act="tanh") - batch_map = layers.detection_map( - input, - label, - class_num, - background_label, - overlap_threshold=overlap_threshold, - evaluate_difficult=evaluate_difficult, - ap_version=ap_version) - - metric = fluid.metrics.DetectionMAP() - for data in train_reader(): - loss, preds, labels = exe.run(fetch_list=[cost, batch_map]) - batch_size = data[0] - metric.update(value=batch_map, weight=batch_size) - numpy_map = metric.eval() + exe = fluid.Executor(place) + map_evaluator = fluid.Evaluator.DetectionMAP(input, + gt_label, gt_box, gt_difficult) + cur_map, accum_map = map_evaluator.get_map_var() + fetch = [cost, cur_map, accum_map] + for epoch in PASS_NUM: + map_evaluator.reset(exe) + for data in batches: + loss, cur_map_v, accum_map_v = exe.run(fetch_list=fetch) + +在上述例子中: + + "cur_map_v" 是当前 mini-batch 的 mAP + + "accum_map_v" 是一个 pass 的 mAP累加和 +.. py:method:: get_map_var() +返回:当前 mini-batch 的 mAP 变量,和跨 mini-batch 的 mAP 累加和 +.. py:methord:: reset(executor, reset_program=None) +在指定 batch 的每一 pass/user 开始时重置度量状态。 + +参数: + - **executor** (Executor) – 执行reset_program的执行程序 + - **reset_program** (Program|None) – 单一 program 的 reset 过程。如果设置为 None,将创建一个 program diff --git a/doc/fluid/api_cn/net_cn.rst b/doc/fluid/api_cn/net_cn.rst deleted file mode 100644 index 847804737164dde545d2eb11d5e746d90c2975bd..0000000000000000000000000000000000000000 --- a/doc/fluid/api_cn/net_cn.rst +++ /dev/null @@ -1,244 +0,0 @@ - -################# - 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 `_ - -参数: - - **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] - - - - - -英文版API文档: :ref:`api_fluid_nets_glu` - -.. _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) - - - -英文版API文档: :ref:`api_fluid_nets_img_conv_group` - -.. _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 `_ - -参数: - - **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] - - - - - -英文版API文档: :ref:`api_fluid_nets_scaled_dot_product_attention` - -.. _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") - - - - -英文版API文档: :ref:`api_fluid_nets_sequence_conv_pool` - -.. _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") - - - - - - - -英文版API文档: :ref:`api_fluid_nets_simple_img_conv_pool` - diff --git a/doc/fluid/api_cn/nets_cn.rst b/doc/fluid/api_cn/nets_cn.rst index 338657ad04388bf09f73863b7c37f1ed8cccd85b..8f95a142ae90466c4e5fc2ee9f02767d9d9c6923 100644 --- a/doc/fluid/api_cn/nets_cn.rst +++ b/doc/fluid/api_cn/nets_cn.rst @@ -170,6 +170,7 @@ sequence_conv_pool由序列卷积和池化组成 - **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 + - **bias_attr** (ParamAttr|bool|None) – sequence_conv偏置的参数属性。如果设置为False,则不会向输出单元添加偏置。如果将参数设置为ParamAttr的None或one属性,sequence_conv将创建ParamAttr作为bias_attr。如果未设置bias_attr的初始化器,则初始化偏差为零。默认值:None。 返回:序列卷积(Sequence Convolution)和池化(Pooling)的结果 diff --git a/doc/fluid/api_cn/optimizer_cn.rst b/doc/fluid/api_cn/optimizer_cn.rst index a5ac3ac2302c6c805bddde1aabfa0b7f42956eb6..29b6ad5489a5d7fe8be643cb253d1966c3ecb71e 100644 --- a/doc/fluid/api_cn/optimizer_cn.rst +++ b/doc/fluid/api_cn/optimizer_cn.rst @@ -134,7 +134,7 @@ Adamax 更新规则: optimizer.minimize(cost) .. note:: - 目前 ``AdamaxOptimizer`` 不支持 sparse gradient + 目前 ``AdamaxOptimizer`` 不支持 sparse parameter optimization. @@ -231,7 +231,7 @@ Decayed Adagrad Optimizer optimizer.minimize(cost) .. note:: - ``DecayedAdagradOptimizer`` 不支持 sparse gradient + ``DecayedAdagradOptimizer`` 不支持 sparse parameter optimization @@ -302,7 +302,7 @@ TFRTL 原始论文: ( `https://www.eecs.tufts.edu/~dsculley/papers/ad-click-pred _, params_grads = optimizer.minimize(cost) .. note:: - 目前, FtrlOptimizer 不支持 sparse gradient + 目前, FtrlOptimizer 不支持 sparse parameter optimization diff --git a/doc/fluid/beginners_guide/install/Tables.md b/doc/fluid/beginners_guide/install/Tables.md index 7a422b536190e93bcb5fe5ad1d88c020e5ce3ff8..86ff0bd6ee36e75b62cb657fd2ff02439f819a9f 100644 --- a/doc/fluid/beginners_guide/install/Tables.md +++ b/doc/fluid/beginners_guide/install/Tables.md @@ -359,12 +359,110 @@ PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/cuDNN库。 您可以在 [DockerHub](https://hub.docker.com/r/paddlepaddle/paddle/tags/) 中找到PaddlePaddle的各个发行的版本的docker镜像。 +*** + +

+## **多版本whl包列表-v1.2** + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
版本说明 cp27-cp27mu cp27-cp27m cp35-cp35m cp36-cp36m cp37-cp37m
cpu-noavx-mkl + paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl + paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl + paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl + paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl + paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl
cpu_avx_mkl + paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl + paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl + paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl + paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl + paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl
cpu_avx_openblas + paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl + paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl + paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl + paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl
cuda8.0_cudnn5_avx_mkl paddlepaddle_gpu-1.2.0-cp27-cp27mu-linux_x86_64.whl paddlepaddle_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl paddlepaddle_gpu-1.2.0-cp35-cp35m-linux_x86_64.whl + paddlepaddle_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl + paddlepaddle_gpu-1.2.0-cp37-cp37m-linux_x86_64.whl
cuda8.0_cudnn7_noavx_mkl paddlepaddle_gpu-1.2.0-cp27-cp27mu-linux_x86_64.whl paddlepaddle_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl paddlepaddle_gpu-1.2.0-cp35-cp35m-linux_x86_64.whl + paddlepaddle_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl + paddlepaddle_gpu-1.2.0-cp37-cp37m-linux_x86_64.whl
cuda8.0_cudnn7_avx_mkl paddlepaddle_gpu-1.2.0.post87-cp27-cp27mu-linux_x86_64.whl paddlepaddle_gpu-1.2.0.post87-cp27-cp27m-linux_x86_64.whl paddlepaddle_gpu-1.2.0.post87-cp35-cp35m-linux_x86_64.whl + paddlepaddle_gpu-1.2.0.post87-cp36-cp36m-linux_x86_64.whl + paddlepaddle_gpu-1.2.0.post87-cp37-cp37m-linux_x86_64.whl
cuda9.0_cudnn7_avx_mkl paddlepaddle_gpu-1.2.0-cp27-cp27mu-linux_x86_64.whl paddlepaddle_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl paddlepaddle_gpu-1.2.0-cp35-cp35m-linux_x86_64.whl + paddlepaddle_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl + paddlepaddle_gpu-1.2.0-cp37-cp37m-linux_x86_64.whl
+

-***

-## **多版本whl包列表** +## **多版本whl包列表-dev**

@@ -373,61 +471,88 @@ PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/cuDNN库。 + + + + + + + + + + - + + - - - - - - - + + + + + + + + + + + + + + + + +
cp27-cp27mu cp27-cp27m cp35-cp35m cp36-cp36m cp37-cp37m
cpu-noavx-mkl + paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl + paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl + paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl + paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl + paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl
cpu_avx_mkl + paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl + paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl + paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl
cpu_avx_openblas paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl None
cpu_noavx_openblas paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl None + paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl + paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl + paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl
cuda8.0_cudnn5_avx_mkl paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl
cuda8.0_cudnn7_noavx_mkl paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl + paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl + paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl
cuda8.0_cudnn7_avx_mkl paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl
cuda9.0_cudnn7_avx_mkl paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl

- - - - - - -

diff --git a/doc/fluid/beginners_guide/install/install_CentOS.md b/doc/fluid/beginners_guide/install/install_CentOS.md index 25c4aa2bb26911968cba7bd12720a67dd186d240..de020cd4b9b8f7718581b4ef0448a4f3d6acef9e 100644 --- a/doc/fluid/beginners_guide/install/install_CentOS.md +++ b/doc/fluid/beginners_guide/install/install_CentOS.md @@ -2,7 +2,7 @@ # **CentOS下安装** -本说明将介绍如何在*64位台式机或笔记本电脑*以及CentOS系统下安装PaddlePaddle,我们支持的CentOS系统需满足以下要求: +本说明将介绍如何在*64位台式机或笔记本电脑*以及CentOS系统下安装PaddlePaddle,我们支持的CentOS系统需满足以下要求: @@ -37,7 +37,7 @@ CentOS系统下您可以使用`cat /proc/cpuinfo | grep avx`来检测您的处 **使用pip安装**(最便捷的安装方式),我们为您提供pip安装方法,但它更依赖您的本机环境,可能会出现和您本机环境相关的一些问题。 -**使用Docker进行安装**(最保险的安装方式),因为我们在把工具和配置都安装在一个 Docker image 里,这样如果遇到问题,其他人可以复现问题以便帮助。另外,对于习惯使用Windows和MacOS的开发者来说,使用Docker就不用配置交叉编译环境了。需要强调的是:Docker 不会虚拟任何硬件,Docker container 里运行的编译工具实际上都是在本机的 CPU 和操作系统上直接运行的,性能和把编译工具安装在本机运行一样。 +**使用Docker进行安装**(最保险的安装方式),因为我们在把工具和配置都安装在一个 Docker image 里,这样如果遇到问题,其他人可以复现问题以便帮助。另外,对于习惯使用Windows和MacOS的开发者来说,使用Docker就不用配置交叉编译环境了。需要强调的是:Docker 不会虚拟任何硬件,Docker container 里运行的编译工具实际上都是在本机的 CPU 和操作系统上直接运行的,性能和把编译工具安装在本机运行一样。 从[**源码编译安装**](#ct_source)以及[**使用Docker进行源码编译安装**](#ct_docker),这是一种通过将PaddlePaddle源代码编译成为二进制文件,然后在安装这个二进制文件的过程,相比使用我们为您编译过的已经通过测试的二进制文件形式的PaddlePaddle,手动编译更为复杂,我们将在说明的最后详细为您解答。 @@ -51,14 +51,14 @@ CentOS系统下您可以使用`cat /proc/cpuinfo | grep avx`来检测您的处 您可以直接粘贴以下命令到命令行来安装PaddlePaddle(适用于CentOS7安装CPU-ONLY的版本),如果出现问题,您可以参照后面的解释对命令作出适应您系统的更改: Python2.7: - - yum update && yum install -y epel-release && yum install -y python-devel python-pip && pip install paddlepaddle - - + + yum update && yum install -y epel-release && yum install -y python-devel python-pip && pip install paddlepaddle + + Python3.5、3.6、3.7: (由于在CentOS下安装Python3的方法较为复杂,我们提供默认您已经正确安装python3.5+以及pip3之后的安装命令) - - yum update && yum install -y epel-release && pip3 install paddlepaddle - + + yum update && yum install -y epel-release && pip3 install paddlepaddle + 首先,我们使用以下指令来**检测本机的环境**是否适合安装PaddlePaddle: @@ -69,44 +69,44 @@ Python3.5、3.6、3.7: (由于在CentOS下安装Python3的方法较为复杂, 其次,您的计算机需要满足以下要求: -* Python2.7.x (devel),Pip >= 9.0.1 +* Python2.7.x (devel),Pip >= 9.0.1 - > CentOS6需要编译Python2.7成[共享库](./FAQ.html/#FAQ)。 + > CentOS6需要编译Python2.7成[共享库](./FAQ.html/#FAQ)。 -* Python3.5+.x (devel),Pip3 >= 9.0.1 +* Python3.5+.x (devel),Pip3 >= 9.0.1 > 您的CentOS上可能已经安装pip请使用pip -V来确认我们建议使用pip 9.0.1或更高版本来安装。 更新yum的源: `yum update` 并安装拓展源以安装pip: `yum install -y epel-release` - 使用以下命令安装或升级Python和pip到需要的版本: - - - For Python2: `sudo yum install python-devel python-pip` + 使用以下命令安装或升级Python和pip到需要的版本: + + - For Python2: `sudo yum install python-devel python-pip` - For Python3: (请参照Python官方流程安装,并注意pip3命令对应的python3版本是否一致,如果有多个python3版本,请指定pip版本如pip3.7,或者将pip3软链到您使用的python版本下) - + > 即使您的环境中已经有`Python`也需要安装`python develop`套装。 下面将说明如何安装PaddlePaddle: 1. 使用pip install来安装PaddlePaddle: - + * 对于需要**CPU版本PaddlePaddle**的用户:`pip install paddlepaddle` 或 `pip3 install paddlepaddle` * 对于需要**GPU版本PaddlePaddle**的用户: `pip install paddlepaddle-gpu` 或 `pip3 install paddlepaddle-gpu` - + > 1. 为防止出现nccl.h找不到的问题请首先按照NVIDIA[官方网站](https://developer.nvidia.com/nccl/nccl-download)的指示正确安装nccl2 - > 2. 如果您不规定pypi包版本号,我们默认为您提供支持Cuda 9/cuDNN v7的PaddlePaddle版本。 + > 2. 如果您不规定pypi包版本号,我们默认为您提供支持Cuda 9/cuDNN v7的PaddlePaddle版本。 * 对于出现`Cannot uninstall 'six'.`问题的用户,可是由于您的系统中已有的Python安装问题造 成的,请使用`pip install paddlepaddle --ignore-installed six`(CPU)或`pip install paddlepaddle-gpu --ignore-installed six`(GPU)解决。 - - * 对于有**其他要求**的用户:`pip install paddlepaddle==[版本号]` 或 `pip3 install paddlepaddle==[版本号]` - + + * 对于有**其他要求**的用户:`pip install paddlepaddle==[版本号]` 或 `pip3 install paddlepaddle==[版本号]` + > `版本号`参见[安装包列表](./Tables.html/#whls)或者您如果需要获取并安装**最新的PaddlePaddle开发分支**,可以从[多版本whl包列表](./Tables.html/#ciwhls)或者我们的[CI系统](https://paddleci.ngrok.io/project.html?projectId=Manylinux1&tab=projectOverview) 中下载最新的whl安装包和c-api开发包并安装。如需登录,请点击“Log in as guest”。 - - - - - + + + + + 现在您已经完成通过`pip install` 来安装的PaddlePaddle的过程。 @@ -131,32 +131,32 @@ Python3.5、3.6、3.7: (由于在CentOS下安装Python3的方法较为复杂, * 对于需要**CPU版本的PaddlePaddle**的用户请使用以下指令拉取我们为您预安装好*PaddlePaddle For CPU*的镜像: - `docker pull hub.baidubce.com/paddlepaddle/paddle:1.1` - + `docker pull hub.baidubce.com/paddlepaddle/paddle:1.2` + * 您也可以通过以下指令拉取任意的我们提供的Docker镜像: `docker pull hub.baidubce.com/paddlepaddle/paddle:[tag]` - - > (请把[tag]替换为[镜像表](./Tables.html/#dockers)中的内容) + + > (请把[tag]替换为[镜像表](./Tables.html/#dockers)中的内容) 2. 使用以下指令用已经拉取的镜像构建并进入Docker容器: `docker run --name [Name of container] -it -v $PWD:/paddle /bin/bash` - - > 上述命令中,--name [Name of container] 设定Docker的名称;-it 参数说明容器已和本机交互式运行; -v $PWD:/paddle 指定将当前路径(Linux中PWD变量会展开为当前路径的[绝对路径](https://baike.baidu.com/item/绝对路径/481185))挂载到容器内部的 /paddle 目录; `` 指定需要使用的image名称,如果您需要使用我们的镜像请使用`hub.baidubce.com/paddlepaddle/paddle:[tag]` 注:tag的意义同第二步,/bin/bash是在Docker中要执行的命令。 + + > 上述命令中,--name [Name of container] 设定Docker的名称;-it 参数说明容器已和本机交互式运行; -v $PWD:/paddle 指定将当前路径(Linux中PWD变量会展开为当前路径的[绝对路径](https://baike.baidu.com/item/绝对路径/481185))挂载到容器内部的 /paddle 目录; `` 指定需要使用的image名称,如果您需要使用我们的镜像请使用`hub.baidubce.com/paddlepaddle/paddle:[tag]` 注:tag的意义同第二步,/bin/bash是在Docker中要执行的命令。 3. (可选:当您需要第二次进入Docker容器中)使用如下命令使用PaddlePaddle: `docker start [Name of container]` - + > 启动之前创建的容器。 `docker attach [Name of container]` - + > 进入启动的容器。 - + 至此您已经成功使用Docker安装PaddlePaddle,您只需要进入Docker容器后运行PaddlePaddle即可,更多Docker使用请参见[Docker官方文档](https://docs.docker.com)。 > 注:PaddlePaddle Docker镜像为了减小体积,默认没有安装`vim`,您可以在容器中执行 `apt-get install -y vim` 安装后,在容器中编辑代码。 diff --git a/doc/fluid/beginners_guide/install/install_MacOS.md b/doc/fluid/beginners_guide/install/install_MacOS.md index 05dfdb6679d71efb7af5013f7b3385b321c9864c..d0464e0b77e70e2056501b1f81a1b3fcf6d56702 100644 --- a/doc/fluid/beginners_guide/install/install_MacOS.md +++ b/doc/fluid/beginners_guide/install/install_MacOS.md @@ -25,7 +25,7 @@ **使用pip安装**(最便捷的安装方式),我们为您提供pip安装方法,但它更依赖您的本机环境,可能会出现和您本机环境相关的一些问题。 -**使用Docker进行安装**(最保险的安装方式),因为我们在把工具和配置都安装在一个 Docker image 里,这样如果遇到问题,其他人可以复现问题以便帮助。另外,对于习惯使用Windows和MacOS的开发者来说,使用Docker就不用配置交叉编译环境了。需要强调的是:Docker 不会虚拟任何硬件,Docker container 里运行的编译工具实际上都是在本机的 CPU 和操作系统上直接运行的,性能和把编译工具安装在本机运行一样。 +**使用Docker进行安装**(最保险的安装方式),因为我们在把工具和配置都安装在一个 Docker image 里,这样如果遇到问题,其他人可以复现问题以便帮助。另外,对于习惯使用Windows和MacOS的开发者来说,使用Docker就不用配置交叉编译环境了。需要强调的是:Docker 不会虚拟任何硬件,Docker container 里运行的编译工具实际上都是在本机的 CPU 和操作系统上直接运行的,性能和把编译工具安装在本机运行一样。 @@ -36,33 +36,33 @@ 首先,**检查您的计算机和操作系统**是否符合我们支持的编译标准: `uname -m` 并且在`关于本机`中查看系统版本。 -其次,您的计算机需要满足以下要求: +其次,您的计算机需要满足以下要求: > **请不要使用MacOS中自带python**,对于**Python2**,建议您使用[Homebrew](https://brew.sh)或[Python.org](https://www.python.org/ftp/python/2.7.15/python-2.7.15-macosx10.9.pkg)提供的python2.7.15;对于**Python3**,请使用[Python.org](https://www.python.org/downloads/mac-osx/)提供的python3.5.x、python3.6.x或python3.7.x。 - + For python2: brew install python@2 或 使用Python官方下载的python2.7.15 For python3: 使用Python官方下载的python3.5.x、python3.6.x或python3.7.x -* Python2.7.x,Pip >= 9.0.1 -* Python3.5.x,Pip3 >= 9.0.1 -* Python3.6.x,Pip3 >= 9.0.1 -* Python3.7.x,Pip3 >= 9.0.1 +* Python2.7.x,Pip >= 9.0.1 +* Python3.5.x,Pip3 >= 9.0.1 +* Python3.6.x,Pip3 >= 9.0.1 +* Python3.7.x,Pip3 >= 9.0.1 + + > 注: 您的MacOS上可能已经安装pip请使用pip -V来确认我们建议使用pip 9.0.1或更高版本来安装。 - > 注: 您的MacOS上可能已经安装pip请使用pip -V来确认我们建议使用pip 9.0.1或更高版本来安装。 - 下面将说明如何安装PaddlePaddle: 1. 使用pip install来安装PaddlePaddle: - + * 对于需要**CPU版本PaddlePaddle**的用户:`pip install paddlepaddle` 或 `pip3 install paddlepaddle` - + * 对于有**其他要求**的用户:`pip install paddlepaddle==[版本号]` 或 `pip3 install paddlepaddle==[版本号]` - - > `版本号`参见[安装包列表](./Tables.html/#whls)或者您如果需要获取并安装**最新的PaddlePaddle开发分支**,可以从[多版本whl包列表](./Tables.html/#ciwhls)或者我们的[CI系统](https://paddleci.ngrok.io/project.html?projectId=Manylinux1&tab=projectOverview) 中下载最新的whl安装包和c-api开发包并安装。如需登录,请点击“Log in as guest”。 - - - + + > `版本号`参见[安装包列表](./Tables.html/#whls)或者您如果需要获取并安装**最新的PaddlePaddle开发分支**,可以从[CI系统](https://paddleci.ngrok.io/project.html?projectId=Manylinux1&tab=projectOverview) 中下载最新的whl安装包和c-api开发包并安装。如需登录,请点击“Log in as guest”。 + + + 现在您已经完成通过`pip install` 来安装的PaddlePaddle的过程。 @@ -84,14 +84,14 @@ * 对于需要**CPU版本的PaddlePaddle**的用户请使用以下指令拉取我们为您预安装好*PaddlePaddle For CPU*的镜像: - `docker pull hub.baidubce.com/paddlepaddle/paddle:1.1` - + `docker pull hub.baidubce.com/paddlepaddle/paddle:1.2` + * 您也可以通过以下指令拉取任意的我们提供的Docker镜像: `docker pull hub.baidubce.com/paddlepaddle/paddle:[tag]` - + > (请把[tag]替换为[镜像表](./Tables.html/#dockers)中的内容) - + 2. 使用以下指令用已经拉取的镜像构建并进入Docker容器: `docker run --name [Name of container] -it -v $PWD:/paddle /bin/bash` @@ -101,14 +101,14 @@ 3. (可选:当您需要第二次进入Docker容器中)使用如下命令使用PaddlePaddle: `docker start [Name of container]` - + > 启动之前创建的容器。 `docker attach [Name of container]` - - > 进入启动的容器。 - - + + > 进入启动的容器。 + + 至此您已经成功使用Docker安装PaddlePaddle,您只需要进入Docker容器后运行PaddlePaddle即可,更多Docker使用请参见[Docker官方文档](https://docs.docker.com)。 > 注:PaddlePaddle Docker镜像为了减小体积,默认没有安装`vim`,您可以在容器中执行 `apt-get install -y vim` 安装后,在容器中编辑代码。 @@ -125,5 +125,5 @@ ## ***如何卸载*** 请使用以下命令卸载PaddlePaddle(使用docker安装PaddlePaddle的用户请进入包含PaddlePaddle的容器中使用以下命令,请使用相应版本的pip): -* ***CPU版本的PaddlePaddle***: `pip uninstall paddlepaddle` 或 `pip3 uninstall paddlepaddle` +* ***CPU版本的PaddlePaddle***: `pip uninstall paddlepaddle` 或 `pip3 uninstall paddlepaddle` diff --git a/doc/fluid/beginners_guide/install/install_Ubuntu.md b/doc/fluid/beginners_guide/install/install_Ubuntu.md index f081096f6c7e3dd9b717ce647db11eace0a45010..7dcd78870f305e31c089ccf1633164c17a72fd82 100644 --- a/doc/fluid/beginners_guide/install/install_Ubuntu.md +++ b/doc/fluid/beginners_guide/install/install_Ubuntu.md @@ -55,12 +55,12 @@ Python2.7: apt update && apt install -y python-dev python-pip && pip install paddlepaddle -Python3.5(该指令适用于本机未安装python2的用户,否则,请卸载python2之后再使用本指令): - +Python3.5(该指令适用于本机未安装python2的用户,否则,请卸载python2之后再使用本指令): + apt-get udpate && apt-get install -y software-properties-common && add-apt-repository ppa:deadsnakes/ppa && apt-get install -y curl python3.5 python3.5-dev wget vim git && curl https://bootstrap.pypa.io/get-pip.py -o - | python3.5 && easy_install pip && pip3 install paddlepaddle - + Python3.6、Python3.7:(由于版本相对较新,在不同Ubuntu版本上安装差异较大,不一一描述其安装过程,执行以下命令前,我们认为您已经准备好python3.6或3.7的环境,并安装了对应版本的python3-dev以及pip3) - + apt update && pip3 install paddlepaddle
@@ -96,11 +96,11 @@ Python3.6、Python3.7:(由于版本相对较新,在不同Ubuntu版本上 * 对于需要**CPU版本PaddlePaddle**的用户:`pip install paddlepaddle` 或 `pip3 install paddlepaddle` * 对于需要**GPU版本PaddlePaddle**的用户:`pip install paddlepaddle-gpu` 或 `pip3 install paddlepaddle-gpu` - - > 1. 为防止出现nccl.h找不到的问题请首先按照以下命令安装nccl2(这里提供的是ubuntu 16.04,CUDA9,cuDNN v7下nccl2的安装指令),更多版本的安装信息请参考NVIDIA[官方网站](https://developer.nvidia.com/nccl/nccl-download): - i. `wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb` - ii. `dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb` - iii. `sudo apt-get install -y libnccl2=2.2.13-1+cuda9.0 libnccl-dev=2.2.13-1+cuda9.0` + + > 1. 为防止出现nccl.h找不到的问题请首先按照以下命令安装nccl2(这里提供的是ubuntu 16.04,CUDA9,cuDNN v7下nccl2的安装指令),更多版本的安装信息请参考NVIDIA[官方网站](https://developer.nvidia.com/nccl/nccl-download): + i. `wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb` + ii. `dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb` + iii. `sudo apt-get install -y libnccl2=2.2.13-1+cuda9.0 libnccl-dev=2.2.13-1+cuda9.0` > 2. 如果您不规定pypi包版本号,我们默认为您提供支持Cuda 9/cuDNN v7的PaddlePaddle版本。 @@ -108,7 +108,7 @@ Python3.6、Python3.7:(由于版本相对较新,在不同Ubuntu版本上 * 对于有**其他要求**的用户:`pip install paddlepaddle==[版本号]` 或 `pip3 install paddlepaddle==[版本号]` - > `版本号`参见[安装包列表](./Tables.html/#whls)或者您如果需要获取并安装**最新的PaddlePaddle开发分支**,可以从我们的[CI系统](https://paddleci.ngrok.io/project.html?projectId=Manylinux1&tab=projectOverview) 中下载最新的whl安装包和c-api开发包并安装。如需登录,请点击“Log in as guest”。 + > `版本号`参见[安装包列表](./Tables.html/#whls)或者您如果需要获取并安装**最新的PaddlePaddle开发分支**,可以从[多版本whl包列表](./Tables.html/#ciwhls)或者我们的[CI系统](https://paddleci.ngrok.io/project.html?projectId=Manylinux1&tab=projectOverview) 中下载最新的whl安装包和c-api开发包并安装。如需登录,请点击“Log in as guest”。 @@ -136,11 +136,11 @@ Python3.6、Python3.7:(由于版本相对较新,在不同Ubuntu版本上 * 对于需要**CPU版本的PaddlePaddle**的用户请使用以下指令拉取我们为您预安装好*PaddlePaddle For CPU*的镜像: - `docker pull hub.baidubce.com/paddlepaddle/paddle:1.1` + `docker pull hub.baidubce.com/paddlepaddle/paddle:1.2` * 对于需要**GPU版本的PaddlePaddle**的用户请使用以下指令拉取我们为您预安装好*PaddlePaddle For GPU*的镜像: - `docker pull hub.baidubce.com/paddlepaddle/paddle:1.1-gpu-cuda9.0-cudnn7` + `docker pull hub.baidubce.com/paddlepaddle/paddle:1.2-gpu-cuda9.0-cudnn7` * 您也可以通过以下指令拉取任意的我们提供的Docker镜像: diff --git a/doc/fluid/beginners_guide/programming_guide/programming_guide.md b/doc/fluid/beginners_guide/programming_guide/programming_guide.md index 04d542c93c8df86a7c604e1d3c0c5282b5ecb497..204cd195815e71ccdbafb12e88fc3da5bd178804 100644 --- a/doc/fluid/beginners_guide/programming_guide/programming_guide.md +++ b/doc/fluid/beginners_guide/programming_guide/programming_guide.md @@ -406,7 +406,7 @@ outs = exe.run( ``` 可以看到100次迭代后,预测值已经非常接近真实值了,损失值也从初始值9.05下降到了0.01。 - 恭喜您!已经成功完成了第一个简单网络的搭建,想尝试线性回归的进阶版——房价预测模型,请阅读:[线性回归](../../beginners_guide/quick_start/fit_a_line/README.cn.html)。更多丰富的模型实例可以在[模型库](../../user_guides/models/index.html)中找到。 + 恭喜您!已经成功完成了第一个简单网络的搭建,想尝试线性回归的进阶版——房价预测模型,请阅读:[线性回归](../../beginners_guide/quick_start/fit_a_line/README.cn.html)。更多丰富的模型实例可以在[模型库](../../user_guides/models/index_cn.html)中找到。 ## What's next diff --git a/doc/fluid/release_note.rst b/doc/fluid/release_note.rst index df68a1efb70458b9d7fdc54a5686149a01371379..e7883aaae120517ecefe5480bbdf2cab850662b3 100644 --- a/doc/fluid/release_note.rst +++ b/doc/fluid/release_note.rst @@ -2,10 +2,10 @@ 版本说明 ============== -PaddlePaddle v1.2 -##################### +Paddle Fluid v1.2 +########################## -PaddlePaddle v1.2 在基础框架、预测引擎、模型建设、分布式训练各个方向上完成多项更新。基础框架支持python3.5及以上全版本。预测引擎优化,预测性能大幅提升。增强了对RL相关的支持能力。模型库新增图像分类任任务的预训练模型、语言模型任务新增基于cudnn的LSTM实现、分布式word2vec模型。CPU多机异步训练升级了包括worker异步并发和IO、通信优化在内多项功能,整体吞吐大幅提升。 +Paddle Fluid v1.2在基础框架、预测引擎、模型建设、分布式训练各个方向上完成多项更新。基础框架支持python3.5及以上全版本。预测引擎优化,预测性能大幅提升。增强了对RL相关的支持能力。模型库新增图像分类任任务的预训练模型、语言模型任务新增基于cudnn的LSTM实现、分布式word2vec模型。CPU多机异步训练升级了包括worker异步并发和IO、通信优化在内多项功能,整体吞吐大幅提升。 基础框架 ========== diff --git a/doc/fluid/user_guides/howto/evaluation_and_debugging/index.rst b/doc/fluid/user_guides/howto/evaluation_and_debugging/index.rst index 72e9c314bceb6f23b3439d094f1c3b097b7a9b2f..ae0d7013a0c9a2cfcf55d2b3b4a4088f50726b9d 100644 --- a/doc/fluid/user_guides/howto/evaluation_and_debugging/index.rst +++ b/doc/fluid/user_guides/howto/evaluation_and_debugging/index.rst @@ -4,9 +4,9 @@ 本部分包括两篇文档: -- `模型评估 <../user_guides/howto/evaluation_and_debugging/evaluation/metrics.html>`_:介绍常用模型评估指标的构造方法 +- `模型评估 <../evaluation_and_debugging/evaluation/metrics.html>`_:介绍常用模型评估指标的构造方法 -- `Visual DL 工具 <../user_guides/howto/evaluation_and_debugging/debug/visualdl.html>`_:介绍如何利用 Visual DL 工具可视化训练过程 +- `Visual DL 工具 <../evaluation_and_debugging/debug/visualdl.html>`_:介绍如何利用 Visual DL 工具可视化训练过程 .. toctree:: :hidden: diff --git a/doc/fluid/user_guides/models/index_cn.rst b/doc/fluid/user_guides/models/index_cn.rst index c1edd4b98f09d6618216f627c77e260b506c0425..e1e342416a89308c64f0b7c4ead35c019dc05ac8 100644 --- a/doc/fluid/user_guides/models/index_cn.rst +++ b/doc/fluid/user_guides/models/index_cn.rst @@ -194,7 +194,7 @@ SimNet是百度自然语言处理部于2013年自主研发的语义匹配框架 在工业可用的推荐系统中,推荐策略一般会被划分为多个模块串联执行。以新闻推荐系统为例,存在多个可以使用深度学习技术的环节,例如新闻的自动化标注,个性化新闻召回,个性化匹配与排序等。PaddlePaddle对推荐算法的训练提供了完整的支持,并提供了多种模型配置供用户选择。 -- `TagSpace `_ +- `TagSpace `_ - `GRU4Rec `_ - `SequenceSemanticRetrieval `_ - `DeepCTR `_