提交 cde66ed8 编写于 作者: H Hao Wang

Merge branch 'develop' of https://github.com/PaddlePaddle/FluidDoc into 1211-update-layers

......@@ -2,7 +2,7 @@
预测部署
########
- `原生预测引擎 <inference/index_cn.html>`_ :介绍了支持模型部署上线的Fluid C++ API
- `服务器端部署 <inference/index_cn.html>`_ :介绍了支持模型部署上线的Fluid C++ API
- `移动端部署 <mobile/index_cn.html>`_:介绍了 PaddlePaddle组织下的嵌入式平台深度学习框架Paddle-Mobile
......
......@@ -48,33 +48,33 @@ Cmake可以在[官网进行下载](https://cmake.org/download/),并添加到
执行完毕后,build 目录如图所示,打开箭头指向的 solution 文件:
<p align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/user_guides/howto/inference/image/image3.png">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/advanced_usage/deploy/inference/image/image3.png">
</p>
修改编译属性为 `/MT`
<p align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/user_guides/howto/inference/image/image4.png">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/advanced_usage/deploy/inference/image/image4.png">
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/user_guides/howto/inference/image/image5.png">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/advanced_usage/deploy/inference/image/image5.png">
</p>
编译生成选项改成 `Release`
<p align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/user_guides/howto/inference/image/image6.png">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/advanced_usage/deploy/inference/image/image6.png">
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/user_guides/howto/inference/image/image7.png">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/advanced_usage/deploy/inference/image/image7.png">
</p>
将提供的依赖包中,Release下的openblas和模型文件拷贝到编译生成的Release下。
<p align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/user_guides/howto/inference/image/image8.png">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/advanced_usage/deploy/inference/image/image8.png">
</p>
通过cmd进到Release目录执行:
......@@ -88,6 +88,6 @@ Cmake可以在[官网进行下载](https://cmake.org/download/),并添加到
`simple_on_word2vec.exe --dirname=.\word2vec.inference.model`
<p align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/user_guides/howto/inference/image/image9.png">
<img src="https://raw.githubusercontent.com/PaddlePaddle/FluidDoc/develop/doc/fluid/advanced_usage/deploy/inference/image/image9.png">
</p>
......@@ -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)
......
......@@ -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
......
......@@ -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"):
...
......
......@@ -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
......
......@@ -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 <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)
......
......@@ -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
......
#################
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]
英文版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 <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]
英文版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`
......@@ -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)的结果
......
......@@ -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
......
......@@ -359,12 +359,110 @@ PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/cuDNN库。
您可以在 [DockerHub](https://hub.docker.com/r/paddlepaddle/paddle/tags/) 中找到PaddlePaddle的各个发行的版本的docker镜像。
***
<a name="ciwhls-release"></a>
</br></br>
## **多版本whl包列表-v1.2**
<p align="center">
<table>
<thead>
<tr>
<th> 版本说明 </th>
<th> cp27-cp27mu </th>
<th> cp27-cp27m </th>
<th> cp35-cp35m </th>
<th> cp36-cp36m </th>
<th> cp37-cp37m </th>
</tr>
</thead>
<tbody>
<tr>
<td> cpu-noavx-mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-noavx-mkl/paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl">
paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-noavx-mkl/paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-noavx-mkl/paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-noavx-mkl/paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-noavx-mkl/paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cpu_avx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-mkl/paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl">
paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-mkl/paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-mkl/paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-mkl/paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-mkl/paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cpu_avx_openblas </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-openblas/paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl">
paddlepaddle-1.2.0-cp27-cp27mu-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-openblas/paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl"> paddlepaddle-1.2.0-cp27-cp27m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-openblas/paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-openblas/paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-cpu-avx-openblas/paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl">
paddlepaddle-1.2.0-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cuda8.0_cudnn5_avx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-1.2.0.post85-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-1.2.0.post85-cp27-cp27m-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-1.2.0.post85-cp35-cp35m-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-1.2.0.post85-cp36-cp36m-linux_x86_64.whl">
paddlepaddle_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-1.2.0.post85-cp37-cp37m-linux_x86_64.whl">
paddlepaddle_gpu-1.2.0-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cuda8.0_cudnn7_noavx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-1.2.0-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-1.2.0-cp35-cp35m-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl">
paddlepaddle_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-1.2.0-cp37-cp37m-linux_x86_64.whl">
paddlepaddle_gpu-1.2.0-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cuda8.0_cudnn7_avx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post87-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0.post87-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post87-cp27-cp27m-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0.post87-cp27-cp27m-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post87-cp35-cp35m-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0.post87-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post87-cp36-cp36m-linux_x86_64.whl">
paddlepaddle_gpu-1.2.0.post87-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post87-cp37-cp37m-linux_x86_64.whl">
paddlepaddle_gpu-1.2.0.post87-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cuda9.0_cudnn7_avx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post97-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post97-cp27-cp27m-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post97-cp35-cp35m-linux_x86_64.whl"> paddlepaddle_gpu-1.2.0-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post97-cp36-cp36m-linux_x86_64.whl">
paddlepaddle_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/1.2.0-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-1.2.0.post97-cp37-cp37m-linux_x86_64.whl">
paddlepaddle_gpu-1.2.0-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
</tbody>
</table>
</p>
***
<a name="ciwhls"></a>
</br></br>
## **多版本whl包列表**
## **多版本whl包列表-dev**
<p align="center">
<table>
<thead>
......@@ -373,61 +471,88 @@ PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/cuDNN库。
<th> cp27-cp27mu </th>
<th> cp27-cp27m </th>
<th> cp35-cp35m </th>
<th> cp36-cp36m </th>
<th> cp37-cp37m </th>
</tr>
</thead>
<tbody>
<tr>
<td> cpu-noavx-mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-noavx-mkl/paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl">
paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-noavx-mkl/paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl">
paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-noavx-mkl/paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl">
paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-noavx-mkl/paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl">
paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-noavx-mkl/paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl">
paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cpu_avx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-mkl/paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl">
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-mkl/paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl">
paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-mkl/paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl">
paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-mkl/paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl">
paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-mkl/paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl">
paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-mkl/paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl">
paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cpu_avx_openblas </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-openblas/paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl">
paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-openblas/paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl"> paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl</a></td>
<td> None </td>
</tr>
<tr>
<td> cpu_noavx_openblas </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-noavx-openblas/paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle-latest-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-noavx-openblas/paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl"> paddlepaddle-latest-cp27-cp27m-linux_x86_64.whl</a></td>
<td> None </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-openblas/paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl">
paddlepaddle-latest-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-openblas/paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl">
paddlepaddle-latest-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-cpu-avx-openblas/paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl">
paddlepaddle-latest-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cuda8.0_cudnn5_avx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn5-avx-mkl/paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cuda8.0_cudnn7_noavx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl">
paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-noavx-mkl/paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl">
paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cuda8.0_cudnn7_avx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda8-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
<tr>
<td> cuda9.0_cudnn7_avx_mkl </td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp27-cp27mu-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp27-cp27m-linux_x86_64.whl</a></td>
<td><a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp35-cp35m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp36-cp36m-linux_x86_64.whl</a></td>
<td> <a href="http://paddlepaddle.org/download?url=http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl"> paddlepaddle_gpu-latest-cp37-cp37m-linux_x86_64.whl</a></td>
</tr>
</tbody>
</table>
</p>
<!--TODO this part should be in a new webpage-->
</br></br>
......
......@@ -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 <imagename> /bin/bash`
> 上述命令中,--name [Name of container] 设定Docker的名称;-it 参数说明容器已和本机交互式运行; -v $PWD:/paddle 指定将当前路径(Linux中PWD变量会展开为当前路径的[绝对路径](https://baike.baidu.com/item/绝对路径/481185))挂载到容器内部的 /paddle 目录; `<imagename>` 指定需要使用的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 目录; `<imagename>` 指定需要使用的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` 安装后,在容器中编辑代码。
......
......@@ -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 <imagename> /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`
......@@ -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
<br/>
......@@ -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镜像:
......
......@@ -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)中找到。
<a name="what_next"></a>
## What's next
......
......@@ -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、通信优化在内多项功能,整体吞吐大幅提升。
基础框架
==========
......
......@@ -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:
......
......@@ -194,7 +194,7 @@ SimNet是百度自然语言处理部于2013年自主研发的语义匹配框架
在工业可用的推荐系统中,推荐策略一般会被划分为多个模块串联执行。以新闻推荐系统为例,存在多个可以使用深度学习技术的环节,例如新闻的自动化标注,个性化新闻召回,个性化匹配与排序等。PaddlePaddle对推荐算法的训练提供了完整的支持,并提供了多种模型配置供用户选择。
- `TagSpace <https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleRec/TagSpace>`_
- `TagSpace <https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleRec/tagspace>`_
- `GRU4Rec <https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleRec/gru4rec>`_
- `SequenceSemanticRetrieval <https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleRec/ssr>`_
- `DeepCTR <https://github.com/PaddlePaddle/models/blob/develop/fluid/PaddleRec/ctr/README.cn.md>`_
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册