提交 8cd6054f 编写于 作者: C chenlong

Merge branch 'develop' of https://github.com/PaddlePaddle/FluidDoc into optimizer_test

...@@ -4,48 +4,51 @@ no_grad ...@@ -4,48 +4,51 @@ no_grad
------------------------------- -------------------------------
.. py:method:: paddle.fluid.dygraph.no_grad(func=None) .. py:class:: paddle.fluid.dygraph.no_grad
:api_attr: 命令式编程模式(动态图) :api_attr: 命令式编程模式(动态图)
:alias_main: paddle.no_grad
:alias: paddle.no_grad
:old_api: paddle.fluid.dygraph.no_grad
创建一个上下文来禁用动态图梯度计算。在此模式下,每次计算的结果都将具有stop_gradient=True。 创建一个上下文来禁用动态图梯度计算。在此模式下,每次计算的结果都将具有stop_gradient=True。
也可以用作一个装饰器(确保不要用括号来初始化)。 也可以用作一个装饰器(需要创建实例对象作为装饰器)。
**代码示例** **代码示例**
.. code-block:: python .. code-block:: python
import numpy as np import numpy as np
import paddle.fluid as fluid import paddle.fluid as fluid
paddle.enable_imperative()
# 用作生成器 # 用作生成器
data = np.array([[2, 3], [4, 5]]).astype('float32') data = np.array([[2, 3], [4, 5]]).astype('float32')
with fluid.dygraph.guard(): l0 = fluid.Linear(2, 2) # l0.weight.gradient() is None
l0 = fluid.Linear(2, 2) # l0.weight.gradient() is None l1 = fluid.Linear(2, 2)
l1 = fluid.Linear(2, 2) with fluid.no_grad():
with fluid.dygraph.no_grad(): # l1.weight.stop_gradient is False
# l1.weight.stop_gradient is False tmp = l1.weight * 2 # tmp.stop_gradient is True
tmp = l1.weight * 2 # tmp.stop_gradient is True x = fluid.dygraph.to_variable(data)
x = fluid.dygraph.to_variable(data) y = l0(x) + tmp
y = l0(x) + tmp o = l1(y)
o = l1(y) o.backward()
o.backward() print(tmp.gradient() is None) # True
print(tmp.gradient() is None) # True print(l0.weight.gradient() is None) # False
print(l0.weight.gradient() is None) # False
# 用作装饰器 # 用作装饰器
@fluid.dygraph.no_grad
@fluid.no_grad()
def test_layer(): def test_layer():
with fluid.dygraph.guard(): inp = np.ones([3, 1024], dtype='float32')
inp = np.ones([3, 1024], dtype='float32') t = fluid.dygraph.base.to_variable(inp)
t = fluid.dygraph.base.to_variable(inp) linear1 = fluid.Linear(1024, 4, bias_attr=False)
linear1 = fluid.Linear(1024, 4, bias_attr=False) linear2 = fluid.Linear(4, 4)
linear2 = fluid.Linear(4, 4) ret = linear1(t)
ret = linear1(t) dy_ret = linear2(ret)
dy_ret = linear2(ret)
test_layer() test_layer()
...@@ -11,23 +11,29 @@ abs ...@@ -11,23 +11,29 @@ abs
绝对值激活函数。 绝对值函数。
.. math:: .. math::
out = |x| out = |x|
参数: 参数:
- **x** (Variable)- 多维Tensor,数据类型为float32或float64。 - x (Tensor) - 输入的Tensor,数据类型为:float32、float64。
- **name** (str) – 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` ,默认值为None - name (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`
返回:表示绝对值结果的Tensor,数据类型与x相同。 返回:输出Tensor,与 ``x`` 维度相同、数据类型相同。
返回类型:Variable 返回类型:Tensor
**代码示例**: **代码示例**:
.. code-block:: python .. code-block:: python
import paddle.fluid as fluid import paddle
data = fluid.layers.data(name="input", shape=[32, 784]) import numpy as np
result = fluid.layers.abs(data)
paddle.disable_static()
x_data = np.array([-1, -2, -3, -4]).astype(np.float32)
x = paddle.to_variable(x_data)
res = paddle.abs(x)
print(res.numpy())
# [1, 2, 3, 4]
...@@ -11,29 +11,30 @@ acos ...@@ -11,29 +11,30 @@ acos
arccosine激活函数。 arccosine函数。
.. math:: .. math::
out = cos^{-1}(x) out = cos^{-1}(x)
参数: 参数:
- **x(Variable)** - acos的输入Tensor,数据类型为 float32 或 float64 - x (Tensor) - 输入的Tensor,数据类型为:float32、float64。
- **name** (str|None) – 具体用法请参见 :ref:`cn_api_guide_Name` ,一般无需设置,默认值为None。 - name (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
返回: `acos` 的输出Tensor,数据类型与 `x` 相同。
返回类型: Variable 返回:输出Tensor,与 ``x`` 维度相同、数据类型相同。
返回类型: Tensor
**代码示例**: **代码示例**:
.. code-block:: python .. code-block:: python
import paddle.fluid as fluid import paddle
data = fluid.layers.data(name="input", shape=[4]) import numpy as np
# if data is [-0.8183, 0.4912, -0.6444, 0.0371]
result = fluid.layers.acos(data)
# result is [2.5293, 1.0573, 2.2711, 1.5336]
paddle.disable_static()
x_data = np.array([-0.8183, 0.4912, -0.6444, 0.0371]).astype(np.float32)
x = paddle.to_variable(x_data)
res = paddle.acos(x)
print(res.numpy())
# [2.5293, 1.0573, 2.2711, 1.5336]
...@@ -11,29 +11,29 @@ asin ...@@ -11,29 +11,29 @@ asin
arcsine激活函数。 arcsine函数。
.. math:: .. math::
out = sin^{-1}(x) out = sin^{-1}(x)
参数: 参数:
- **x(Variable)** - asin的输入Tensor,数据类型为 float32 或 float64 - x (Tensor) - 输入的Tensor,数据类型为:float32、float64。
- **name** (str|None) – 具体用法请参见 :ref:`cn_api_guide_Name` ,一般无需设置,默认值为None - name (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`
返回: `asin` 的输出Tensor,数据类型与 `x` 相同。 返回:输出Tensor,与 ``x`` 维度相同、数据类型相同。
返回类型: Variable 返回类型: Tensor
**代码示例**: **代码示例**:
.. code-block:: python .. code-block:: python
import paddle.fluid as fluid import paddle
data = fluid.layers.data(name="input", shape=[4]) import numpy as np
# if data is [-0.8183, 0.4912, -0.6444, 0.0371]
result = fluid.layers.asin(data)
# result is [-0.9585, 0.5135, -0.7003, 0.0372]
paddle.disable_static()
x_data = np.array([-0.8183, 0.4912, -0.6444, 0.0371]).astype(np.float32)
x = paddle.to_variable(x_data)
res = paddle.asin(x)
print(res.numpy())
# [-0.9585, 0.5135, -0.7003, 0.0372]
...@@ -11,30 +11,29 @@ atan ...@@ -11,30 +11,29 @@ atan
arctanh激活函数。 arctangent函数。
.. math:: .. math::
out = tanh^{-1}(x) out = tan^{-1}(x)
参数: 参数:
- **x(Variable)** - atan的输入Tensor,数据类型为 float32 或 float64 - x (Tensor) - 输入的Tensor,数据类型为:float32、float64。
- **name** (str|None) – 具体用法请参见 :ref:`cn_api_guide_Name` ,一般无需设置,默认值为None - name (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`
返回: `atan` 的输出Tensor,数据类型与 `x` 相同。 返回:输出Tensor,与 ``x`` 维度相同、数据类型相同。
返回类型: Variable 返回类型: Tensor
**代码示例**: **代码示例**:
.. code-block:: python .. code-block:: python
import paddle.fluid as fluid import paddle
data = fluid.layers.data(name="input", shape=[4]) import numpy as np
# if data is [-0.8183, 0.4912, -0.6444, 0.0371]
result = fluid.layers.atan(data)
# result is [-0.6858, 0.4566, -0.5724, 0.0371]
paddle.disable_static()
x_data = np.array([-0.8183, 0.4912, -0.6444, 0.0371]).astype(np.float32)
x = paddle.to_variable(x_data)
res = paddle.atan(x)
print(res.numpy())
# [-0.6858, 0.4566, -0.5724, 0.0371]
...@@ -19,24 +19,24 @@ ceil ...@@ -19,24 +19,24 @@ ceil
参数: 参数:
- **x** (Variable) - 该OP的输入为多维Tensor。数据类型为float32或float64。 - x (Tensor) - 输入的Tensor,数据类型为:float32、float64。
- **name** (str, 可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为None - name (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`
返回: 输出为Tensor,与 ``x`` 维度相同、数据类型相同。 返回:输出Tensor,与 ``x`` 维度相同、数据类型相同。
返回类型: Variable 返回类型: Tensor
**代码示例**: **代码示例**:
.. code-block:: python .. code-block:: python
import paddle.fluid as fluid import paddle
import numpy as np import numpy as np
input_ceil = np.array([[-1.5,6],[1,15.6]]) paddle.disable_static()
with fluid.dygraph.guard(): x_data = np.array([[-1.5,6],[1,15.6]]).astype(np.float32)
x = fluid.dygraph.to_variable(input_ceil) x = paddle.to_variable(x_data)
y = fluid.layers.ceil(x) res = paddle.ceil(x)
print(y.numpy()) print(res.numpy())
# [[-1. 6.] # [[-1. 6.]
# [ 1. 16.]] # [ 1. 16.]]
...@@ -13,32 +13,31 @@ cos ...@@ -13,32 +13,31 @@ cos
余弦函数。 余弦函数。
输入范围是 `(-inf, inf)` , 输出范围是 `[-1,1]`。若输入超出边界则结果为`nan`。
.. math:: .. math::
out = cos(x) out = cos(x)
参数: 参数:
- **x** (Variable) - 该OP的输入为多维Tensor,数据类型为float32,float64。 - x (Tensor) - 输入的Tensor,数据类型为:float32、float64。
- **name** (str, 可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为None。 - name (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
返回:输出Tensor,与 ``x`` 维度相同、数据类型相同。 返回:输出Tensor,与 ``x`` 维度相同、数据类型相同。
返回类型:Variable 返回类型:Tensor
**代码示例**: **代码示例**:
.. code-block:: python .. code-block:: python
import paddle.fluid as fluid import paddle
import numpy as np import numpy as np
input_cos = np.array([[-1,np.pi],[1,15.6]]) paddle.disable_static()
with fluid.dygraph.guard(): x_data = np.array([[-1,np.pi],[1,15.6]]).astype(np.float32)
x = fluid.dygraph.to_variable(input_cos) x = paddle.to_variable(x_data)
y = fluid.layers.cos(x) res = paddle.cos(x)
print(y.numpy()) print(res.numpy())
# [[ 0.54030231 -1. ] # [[ 0.54030231 -1. ]
# [ 0.54030231 -0.99417763]] # [ 0.54030231 -0.99417763]]
...@@ -5,7 +5,7 @@ paddle ...@@ -5,7 +5,7 @@ paddle
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
paddle_cn/abs_cn.rst paddle_cn/abs_cn.rst
paddle_cn/acos_cn.rst paddle_cn/acos_cn.rst
paddle_cn/addcmul_cn.rst paddle_cn/addcmul_cn.rst
paddle_cn/addmm_cn.rst paddle_cn/addmm_cn.rst
...@@ -101,7 +101,8 @@ paddle ...@@ -101,7 +101,8 @@ paddle
paddle_cn/minimum_cn.rst paddle_cn/minimum_cn.rst
paddle_cn/multiplex_cn.rst paddle_cn/multiplex_cn.rst
paddle_cn/mul_cn.rst paddle_cn/mul_cn.rst
paddle_cn/name_scope_cn.rst paddle_cn/name_scope_cn.rst
paddle_cn/no_grad_cn.rst
paddle_cn/nonzero_cn.rst paddle_cn/nonzero_cn.rst
paddle_cn/not_equal_cn.rst paddle_cn/not_equal_cn.rst
paddle_cn/ones_cn.rst paddle_cn/ones_cn.rst
......
.. _cn_api_paddle_cn_name_scope:
name_scope
-------------------------------
:doc_source: paddle.fluid.dygraph.no_grad
...@@ -7,7 +7,7 @@ index_select ...@@ -7,7 +7,7 @@ index_select
该OP沿着指定轴 ``axis`` 对输入 ``x`` 进行索引,取 ``index`` 中指定的相应项,创建并返回到一个新的Tensor。这里 ``index`` 是一个 ``1-D`` Tensor。除 ``axis`` 轴外,返回的Tensor其余维度大小和输入 ``x``相等 , ``axis`` 维度的大小等于 ``index`` 的大小。 该OP沿着指定轴 ``axis`` 对输入 ``x`` 进行索引,取 ``index`` 中指定的相应项,创建并返回到一个新的Tensor。这里 ``index`` 是一个 ``1-D`` Tensor。除 ``axis`` 轴外,返回的Tensor其余维度大小和输入 ``x`` 相等 , ``axis`` 维度的大小等于 ``index`` 的大小。
**参数**: **参数**:
- **x** (Tensor)– 输入Tensor。 ``x`` 的数据类型可以是float32,float64,int32,int64。 - **x** (Tensor)– 输入Tensor。 ``x`` 的数据类型可以是float32,float64,int32,int64。
...@@ -30,14 +30,14 @@ index_select ...@@ -30,14 +30,14 @@ index_select
import paddle import paddle
import numpy as np import numpy as np
paddle.enable_imperative() # Now we are in imperative mode paddle.disable_static() # Now we are in imperative mode
data = np.array([[1.0, 2.0, 3.0, 4.0], data = np.array([[1.0, 2.0, 3.0, 4.0],
[5.0, 6.0, 7.0, 8.0], [5.0, 6.0, 7.0, 8.0],
[9.0, 10.0, 11.0, 12.0]]) [9.0, 10.0, 11.0, 12.0]])
data_index = np.array([-1, 1, 1]).astype('int32') data_index = np.array([0, 1, 1]).astype('int32')
x = paddle.imperative.to_variable(data) x = paddle.to_variable(data)
index = paddle.imperative.to_variable(data_index) index = paddle.to_variable(data_index)
out_z1 = paddle.index_select(x=x, index=index) out_z1 = paddle.index_select(x=x, index=index)
#[[1. 2. 3. 4.] #[[1. 2. 3. 4.]
# [5. 6. 7. 8.] # [5. 6. 7. 8.]
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
log1p log1p
------------------------------- -------------------------------
.. py:function:: paddle.tensor.log1p(x, out=None, name=None) .. py:function:: paddle.log1p(x, name=None)
:alias_main: paddle.log1p :alias_main: paddle.log1p
:alias: paddle.log1p,paddle.tensor.log1p,paddle.tensor.math.log1p :alias: paddle.log1p,paddle.tensor.log1p,paddle.tensor.math.log1p
...@@ -18,32 +18,27 @@ log1p ...@@ -18,32 +18,27 @@ log1p
参数: 参数:
- **x** (Variable) – 该OP的输入为LodTensor/Tensor。数据类型为float32,float64。 - **x** (Tensor) – 指定输入为一个多维的Tensor。数据类型为float32,float64。
- **out** (Variable, 可选) - 指定算子输出结果的LoDTensor/Tensor,可以是程序中已经创建的任何Variable。默认值为None,此时将创建新的Variable来保存输出结果。
- **name** (str,可选) – 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` ,默认值为None。 - **name** (str,可选) – 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` ,默认值为None。
返回:Log1p算子自然对数输出 返回:Log1p算子自然对数输出
返回类型: Variable - 该OP的输出为LodTensor/Tensor,数据类型为输入一致。 返回类型: Tensor - 该OP的输出为一个多维的Tensor,数据类型为输入一致。
**代码示例** **代码示例**
.. code-block:: python .. code-block:: python
import paddle import paddle
import paddle.fluid as fluid import numpy as np
import numpy as np
paddle.enable_imperative()
x = fluid.data(name="x", shape=[2,1], dtype="float32") x = np.array([[1, 2], [3, 4]]).astype('float32')
res = paddle.log1p(x) # paddle.log1p等价于 paddle.tensor.log1p x1 = paddle.imperative.to_variable(x)
# 举例选择CPU计算环境 out1 = paddle.log1p(x1)
exe = fluid.Executor(fluid.CPUPlace()) print(out1.numpy())
# [[0.6931472 1.0986123]
# 执行静态图,输出结果 # [1.3862944 1.609438 ]]
x_i = np.array([[0], [1]]).astype(np.float32)
res_val, = exe.run(fluid.default_main_program(), feed={'x':x_i}, fetch_list=[res])
print(res_val) # [[0.], [0.6931472]]
...@@ -2,6 +2,43 @@ ...@@ -2,6 +2,43 @@
log log
------------------------------- -------------------------------
:doc_source: paddle.fluid.layers.log
.. py:function:: paddle.log(x, name=None)
:alias_main: paddle.log
:alias: paddle.log,paddle.tensor.log,paddle.tensor.math.log
:old_api: paddle.fluid.layers.log
Log激活函数(计算自然对数)
.. math::
\\Out=ln(x)\\
参数:
- **x** (Tensor) – 指定输入为一个多维的Tensor。数据类型为float32,float64。
- **name** (str,可选) – 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` ,默认值为None。
返回:Log算子自然对数输出
返回类型: Tensor - 该OP的输出为一个多维的Tensor,数据类型为输入一致。
**代码示例**
.. code-block:: python
import paddle
import numpy as np
paddle.enable_imperative()
x = np.array([[1, 2], [3, 4]]).astype('float32')
x1 = paddle.imperative.to_variable(x)
out1 = paddle.log(x1)
print(out1.numpy())
# [[0. 0.6931472]
# [1.0986123 1.3862944]]
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册