From 2ea2003c8a8e42e39fff4e0bdf20feb8d7c88a76 Mon Sep 17 00:00:00 2001 From: LutaoChu <30695251+LutaoChu@users.noreply.github.com> Date: Mon, 31 Aug 2020 10:17:46 +0800 Subject: [PATCH] remove special treatment of one-dimensional input for normalize Op (#2507) --- .../nn/functional/norm/normalize_cn.rst | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 doc/paddle/api/paddle/nn/functional/norm/normalize_cn.rst diff --git a/doc/paddle/api/paddle/nn/functional/norm/normalize_cn.rst b/doc/paddle/api/paddle/nn/functional/norm/normalize_cn.rst new file mode 100644 index 000000000..5c96529ef --- /dev/null +++ b/doc/paddle/api/paddle/nn/functional/norm/normalize_cn.rst @@ -0,0 +1,59 @@ +normalize +------------------------------- + +.. py:function:: paddle.nn.functional.normalize(x, p=2, axis=1, epsilon=1e-12, name=None) + +该接口使用 :math:`L_p` 范数沿维度 ``axis`` 对 ``x`` 进行归一化。计算公式如下: + +.. math:: + + y = \frac{x}{ \max\left( \lvert \lvert x \rvert \rvert_p, epsilon\right) } + +.. math:: + \lvert \lvert x \rvert \rvert_p = \left(\sum_i {\lvert x_i\rvert^p} \right)^{1/p} + +其中 :math:`\sum_i{\lvert x_i\rvert^p}` 沿维度 ``axis`` 进行计算。 + + +参数 +::::::::: + - **x** (Tensor) - 输入可以是N-D Tensor。数据类型为:float32、float64。 + - **p** (float|int, 可选) - 范数公式中的指数值。默认值为2 + - **axis** (int, 可选)- 要进行归一化的轴。如果 `axis < 0`,轴为 `x.ndim + axis`。-1表示最后一维。默认值为1 + - **epsilon** (float,可选) - 添加到分母上的值以防止分母除0。默认值为1e-12 + - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +返回 +::::::::: +``Tensor``, 输出的形状和数据类型和 ``x`` 相同。 + +抛出异常: +::::::::: + - ``TypeError`` - 当参数 ``p`` 或者 ``axis`` 的类型不符合要求时。或者当参数 ``x`` 的类型或数据类型不符合要求时。 + +代码示例 +::::::::: + +.. code-block:: python + + import numpy as np + import paddle + import paddle.nn.functional as F + + paddle.disable_static() + x = np.arange(6, dtype=np.float32).reshape(2,3) + x = paddle.to_variable(x) + y = F.normalize(x) + print(y.numpy()) + # [[0. 0.4472136 0.8944272 ] + # [0.42426404 0.5656854 0.7071067 ]] + + y = F.normalize(x, p=1.5) + print(y.numpy()) + # [[0. 0.40862012 0.81724024] + # [0.35684016 0.4757869 0.5947336 ]] + + y = F.normalize(x, axis=0) + print(y.numpy()) + # [[0. 0.24253564 0.37139067] + # [1. 0.97014254 0.9284767 ]] -- GitLab