diff --git a/docs/api/paddle/Tensor_cn.rst b/docs/api/paddle/Tensor_cn.rst index 2d1786e1e56..45504bc32c7 100755 --- a/docs/api/paddle/Tensor_cn.rst +++ b/docs/api/paddle/Tensor_cn.rst @@ -1916,7 +1916,7 @@ prod(axis=None, keepdim=False, dtype=None, name=None) 请参考 :ref:`cn_api_paddle_prod` -quantile(q, axis=None, keepdim=False, name=None) +quantile(q, axis=None, keepdim=False, interpolation='linear', name=None) ::::::::: 返回:计算后的 Tensor diff --git a/docs/api/paddle/nanquantile_cn.rst b/docs/api/paddle/nanquantile_cn.rst new file mode 100644 index 00000000000..34703b6d88c --- /dev/null +++ b/docs/api/paddle/nanquantile_cn.rst @@ -0,0 +1,26 @@ +.. _cn_api_paddle_nanquantile: + +nanquantile +------------------------------- + +.. py:function:: paddle.nanquantile(x, q, axis=None, keepdim=False, interpolation='linear', name=None) + +沿给定的轴 ``axis`` 计算 ``x`` 中元素的分位数, 忽略元素中的 ``NaN`` 。 + +参数 +:::::::::: + - **x** (Tensor) - 输入的 Tensor,数据类型为:float32、float64。 + - **q** (int|float|list|Tensor) - 待计算的分位数,需要在符合取值范围[0, 1]。如果 ``q`` 是 List 或者 1-D Tensor,其中的每一个 q 分位数都会被计算,并且输出的首维大小与列表或 Tensor 中元素的数量相同。如果 ``q`` 是 0-D Tensor ,则会被当作 float 和 int 对待。 + - **axis** (int|list,可选) - 指定对 ``x`` 进行计算的轴。``axis`` 可以是 int 或内部元素为 int 类型的 list。``axis`` 值应该在范围[-D, D)内,D 是 ``x`` 的维度。如果 ``axis`` 或者其中的元素值小于 0,则等价于 :math:`axis + D`。如果 ``axis`` 是 list,对给定的轴上的所有元素计算分位数。如果 ``axis`` 是 None,则对 ``x`` 的全部元素计算分位数。默认值为 None。 + - **keepdim** (bool,可选) - 是否在输出 Tensor 中保留减小的维度。如果 ``keepdim`` 为 True,则输出 Tensor 和 ``x`` 具有相同的维度(减少的维度除外,减少的维度的大小为 1)。否则,输出 Tensor 的形状会在 ``axis`` 上进行 squeeze 操作。默认值为 False。 + - **interpolation** (str,可选) - 计算分位数的插值方法,可以是 ``linear`` , ``lower`` , ``higher`` , ``nearest`` 或者 ``midpoint`` 。 默认值为 ``linear`` 。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +返回 +:::::::::: + ``Tensor``,沿着 ``axis`` 进行分位数计算的结果。与输入数据类型一致。 + +代码示例 +:::::::::: + +COPY-FROM: paddle.nanquantile diff --git a/docs/api/paddle/quantile_cn.rst b/docs/api/paddle/quantile_cn.rst index cc24211869b..db5961d91b5 100644 --- a/docs/api/paddle/quantile_cn.rst +++ b/docs/api/paddle/quantile_cn.rst @@ -3,21 +3,22 @@ quantile ------------------------------- -.. py:function:: paddle.quantile(x, q, axis=None, keepdim=False, name=None) +.. py:function:: paddle.quantile(x, q, axis=None, keepdim=False, interpolation='linear', name=None) 沿给定的轴 ``axis`` 计算 ``x`` 中元素的分位数。 参数 :::::::::: - **x** (Tensor) - 输入的 Tensor,数据类型为:float32、float64。 - - **q** (int|float|list) - 待计算的分位数,需要在符合取值范围[0, 1]。如果 ``q`` 是 List,其中的每一个 q 分位数都会被计算,并且输出的首维大小与列表中元素的数量相同。 + - **q** (int|float|list|Tensor) - 待计算的分位数,需要在符合取值范围[0, 1]。如果 ``q`` 是 List 或者 1-D Tensor,其中的每一个 q 分位数都会被计算,并且输出的首维大小与列表或 Tensor 中元素的数量相同。如果 ``q`` 是 0-D Tensor ,则会被当作 float 和 int 对待。 - **axis** (int|list,可选) - 指定对 ``x`` 进行计算的轴。``axis`` 可以是 int 或内部元素为 int 类型的 list。``axis`` 值应该在范围[-D, D)内,D 是 ``x`` 的维度。如果 ``axis`` 或者其中的元素值小于 0,则等价于 :math:`axis + D`。如果 ``axis`` 是 list,对给定的轴上的所有元素计算分位数。如果 ``axis`` 是 None,则对 ``x`` 的全部元素计算分位数。默认值为 None。 - **keepdim** (bool,可选) - 是否在输出 Tensor 中保留减小的维度。如果 ``keepdim`` 为 True,则输出 Tensor 和 ``x`` 具有相同的维度(减少的维度除外,减少的维度的大小为 1)。否则,输出 Tensor 的形状会在 ``axis`` 上进行 squeeze 操作。默认值为 False。 + - **interpolation** (str,可选) - 计算分位数的插值方法,可以是 ``linear`` , ``lower`` , ``higher`` , ``nearest`` 或者 ``midpoint`` 。 默认值为 ``linear`` 。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::: - ``Tensor``,沿着 ``axis`` 进行分位数计算的结果。如果 ``x`` 的数据类型为 float64,则返回值的数据类型为 float64,反之返回值数据类型为 float32。 + ``Tensor``,沿着 ``axis`` 进行分位数计算的结果。与输入数据类型一致。 代码示例 :::::::::: diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.nanquantile.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.nanquantile.md index f0e7158a08d..03e88b20919 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.nanquantile.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.nanquantile.md @@ -18,17 +18,7 @@ PyTorch 相比 Paddle 支持更多其他参数,具体如下: | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ |-----------------------------------------------------------------------------------------------------------------------------------| -| q | q | 一个 [0, 1] 范围内的分位数值的标量。当 q 为标量时,参数完全一致。当 q 为一维向量时,PyTorch 支持 q 为 1D Tensor,PaddlePaddle 支持 q 为一维列表。当 torch 的 q 为 1D Tensor 时,需要转写。 | +| q | q | 待计算的分位数。| | dim | axis | 求乘积运算的维度,仅参数名不一致。 | | keepdim | keepdim | 是否在输出 Tensor 中保留输入的维度。 | -| interpolation | - | 指定当所需分位数位于两个数据点之间时使用的插值方法,Paddle 无此参数,暂无转写方式。 | - -### 转写示例 -```python -# 当 q 为向量时 -# PyTorch 写法 -x.nanquantile(q=torch.tensor([0.5, 0.1], dtype=torch.float64)) - -# Paddle -x.nanquantile(q=[0.5, 0.1]) -``` +| interpolation | interpolation | 指定当所需分位数位于两个数据点之间时使用的插值方法。| diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.quantile.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.quantile.md index d3ee3cc1f3a..a394d8c0797 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.quantile.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.quantile.md @@ -9,7 +9,7 @@ torch.Tensor.quantile(q, dim=None, keepdim=False, *, interpolation='linear') ### [paddle.Tensor.quantile](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#quantile-q-axis-none-keepdim-false-name-none) ```python -paddle.Tensor.quantile(q, axis=None, keepdim=False, name=None) +paddle.Tensor.quantile(q, axis=None, keepdim=False, interpolation='linear', name=None) ``` PyTorch 相比 Paddle 支持更多其他参数,具体如下: @@ -20,4 +20,4 @@ PyTorch 相比 Paddle 支持更多其他参数,具体如下: | q | q |待计算的分位数。 | | dim | axis |指定对 x 进行计算的轴,仅参数名不一致。| | keepdim | keepdim |是否在输出 Tensor 中保留减小的维度。| -| interpolation | - |两个数据点的插补取值方法,Paddle 无此参数,暂无转写方式。| +| interpolation | interpolation |两个数据点的插补取值方法| diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/ops/torch.nanquantile.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/ops/torch.nanquantile.md index e242b6cec5d..bb603ad857b 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/ops/torch.nanquantile.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/ops/torch.nanquantile.md @@ -19,6 +19,7 @@ paddle.nanquantile(x, q, axis=None, keepdim=False, + interpolation='linear', name=None) ``` @@ -30,16 +31,16 @@ PyTorch 相比 Paddle 支持更多其他参数,具体如下: | q | q | 待计算的分位数。 | | dim | axis| 指定对 x 进行计算的轴,仅参数名不一致。 | |keepdim|keepdim| 是否在输出 Tensor 中保留减小的维度。| -|interpolation| - | 当所需分位数位于两个数据点之间时使用的插值方法,Paddle 无此参数,Paddle 暂无转写方式。| +|interpolation| interpolation | 当所需分位数位于两个数据点之间时使用的插值方法| | out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 | ### 转写示例 #### out:指定输出 ```python -# PyTorch 写法 -torch.nanquantile(torch.tensor([float('nan'), 1., 2., 3.]), 0.6, out=y) +# Pytorch 写法 +torch.nanquantile(torch.tensor([float('nan'), 1., 2., 3.]), 0.6, interpolation='linear', out=y) # Paddle 写法 -paddle.assign(paddle.nanquantile(paddle.to_tensor([float('nan'), 1., 2., 3.]), 0.6), y) +paddle.assign(paddle.nanquantile(paddle.to_tensor([float('nan'), 1., 2., 3.]), 0.6, interpolation='linear'), y) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/ops/torch.quantile.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/ops/torch.quantile.md index f9b9c883ca5..bae0a83331e 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/ops/torch.quantile.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/ops/torch.quantile.md @@ -19,6 +19,7 @@ paddle.quantile(x, q, axis=None, keepdim=False, + interpolation='linear', name=None) ``` @@ -30,7 +31,7 @@ PyTorch 相比 Paddle 支持更多其他参数,具体如下: | q | q | 待计算的分位数。 | | dim | axis| 指定对 x 进行计算的轴,仅参数名不一致。 | |keepdim|keepdim| 是否在输出 Tensor 中保留减小的维度。| -|interpolation| - | 当所需分位数位于两个数据点之间时使用的插值方法,Paddle 无此参数,需要转写,Paddle 暂无转写方式。| +|interpolation| interpolation | 当所需分位数位于两个数据点之间时使用的插值方。| | out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 | @@ -41,5 +42,5 @@ PyTorch 相比 Paddle 支持更多其他参数,具体如下: torch.quantile(torch.tensor([0., 1., 2., 3.]), 0.6, interpolation='linear', out=y) # Paddle 写法 -paddle.assign(paddle.quantile(paddle.to_tensor([0., 1., 2., 3.]), 0.6), y) +paddle.assign(paddle.quantile(paddle.to_tensor([0., 1., 2., 3.]), 0.6, interpolation='linear'), y) ```