From f557409c9c02aeb7746760b24806e632209c58ce Mon Sep 17 00:00:00 2001 From: zhouwei25 Date: Thu, 2 Jul 2026 13:14:19 +0000 Subject: [PATCH 1/5] [API Compatibility] nn.Module.to_empty/linalg.det/nn.functional.gumbel_softmax/vstack/Tensor.gt_/Tensor.addcdiv/nn.functional.batch_norm/set_default_device/autograd.grad_mode.set_grad_enabled/Tensor.new_tensor/cuda.amp.GradScaler/nn.modules.loss._Loss/nn.modules.utils._pair Edit By AI Agent Co-Authored-By: Claude Opus 4.6 --- docs/api/paddle/clamp_max_cn.rst | 35 ++++++++++++ docs/api/paddle/compat/nn/_pair_cn.rst | 23 ++++++++ .../paddle/device/set_default_device_cn.rst | 29 ++++++++++ docs/api/paddle/expand_copy_cn.rst | 25 ++++++++ docs/api/paddle/linalg/det_cn.rst | 5 +- docs/api/paddle/logdet_cn.rst | 26 +++++++++ .../nn/functional/gumbel_softmax_cn.rst | 3 +- docs/api/paddle/true_divide__cn.rst | 24 ++++++++ docs/api/paddle/vstack_cn.rst | 3 +- .../.claude/skills/cpp-sink/SKILL.md | 57 ++++++++++++------- .../.claude/skills/update-docs/SKILL.md | 2 + 11 files changed, 207 insertions(+), 25 deletions(-) create mode 100644 docs/api/paddle/clamp_max_cn.rst create mode 100644 docs/api/paddle/compat/nn/_pair_cn.rst create mode 100644 docs/api/paddle/device/set_default_device_cn.rst create mode 100644 docs/api/paddle/expand_copy_cn.rst create mode 100644 docs/api/paddle/logdet_cn.rst create mode 100644 docs/api/paddle/true_divide__cn.rst diff --git a/docs/api/paddle/clamp_max_cn.rst b/docs/api/paddle/clamp_max_cn.rst new file mode 100644 index 00000000000..420f3cea624 --- /dev/null +++ b/docs/api/paddle/clamp_max_cn.rst @@ -0,0 +1,35 @@ +.. _cn_api_paddle_clamp_max: + +clamp_max +------------------------------- + +.. py:function:: paddle.clamp_max(x, max=None, name=None, *, out=None) + +该 API 将输入中的所有元素进行裁剪,使得输出元素不大于给定的最大值,具体公式如下: + +.. math:: + + Out = MIN(x, max) + +.. note:: + 别名支持: 参数名 ``input`` 可替代 ``x``,如 ``clamp_max(input=tensor_x, max=0.5)`` 等价于 ``clamp_max(x=tensor_x, max=0.5)``。 + +参数 +:::::::::::: + + - **x** (Tensor) - 输入的 Tensor,数据类型为:float16、float32、float64、int32、int64。别名: ``input``。 + - **max** (float|int|Tensor,可选) - 裁剪的最大值,输入中大于该值的元素将由该元素代替。数据类型可以是 float32 或形状为 [] 的 0-D Tensor,默认值为 None。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +关键字参数 +:::::::::::: + - **out** (Tensor,可选) - 输出 Tensor。默认值为 None。 + +返回 +:::::::::::: +输出 Tensor,与 ``x`` 维度相同。当 ``x`` 数据类型为 int32 或 int64 且 ``max`` 为 float 类型时,输出 Tensor 的数据类型为 float32,否则与输入 ``x`` 的数据类型相同。 + +代码示例 +:::::::::::: + +COPY-FROM: paddle.clamp_max diff --git a/docs/api/paddle/compat/nn/_pair_cn.rst b/docs/api/paddle/compat/nn/_pair_cn.rst new file mode 100644 index 00000000000..f8fe1004e03 --- /dev/null +++ b/docs/api/paddle/compat/nn/_pair_cn.rst @@ -0,0 +1,23 @@ +.. _cn_api_paddle_compat_nn__pair: + +_pair +------------------------------- + +.. py:function:: paddle.compat.nn._pair(x) + +用于将输入转换为包含 2 个元素的元组。当输入为单个整数时,返回包含两个相同整数的元组;当输入为列表或元组时,转换为元组并返回。 + +参数 +::::::::::: + + - **x** (int|list|tuple) - 输入值,可以是整数、包含 2 个元素的列表或元组。 + +返回 +::::::::::: + + tuple:包含 2 个元素的元组。 + +代码示例 +:::::::::::: + +COPY-FROM: paddle.compat.nn._pair diff --git a/docs/api/paddle/device/set_default_device_cn.rst b/docs/api/paddle/device/set_default_device_cn.rst new file mode 100644 index 00000000000..d66771354f5 --- /dev/null +++ b/docs/api/paddle/device/set_default_device_cn.rst @@ -0,0 +1,29 @@ +.. _cn_api_paddle_device_set_default_device: + +set_default_device +------------------------------- + +.. py:function:: paddle.device.set_default_device(device=None) + +Paddle 支持在各种类型的设备上运行,包括 CPU、GPU、XPU、NPU 和 IPU。 +该函数可以设置 OP 运行的全局设备。 + +参数 +::::::::: + + - **device** (str|Place|paddle.device|int|None,可选) - 此参数确定特定的运行设备。可以是 ``cpu``、``gpu``、``xpu``、``npu``、``gpu:x``、``xpu:x``、``npu:x`` 和 ``ipu``, + 其中 ``x`` 是 GPU、XPU 或 NPU 的索引。也可以是 ``paddle.device`` 对象或 int 类型的设备索引。如果为 ``None``,则重置为 CPU。 + 默认值为 None。 + +返回 +::::::::: + + 无。 + +代码示例 +::::::::: + +.. code-block:: pycon + + >>> import paddle + >>> paddle.device.set_default_device("cpu") diff --git a/docs/api/paddle/expand_copy_cn.rst b/docs/api/paddle/expand_copy_cn.rst new file mode 100644 index 00000000000..b74d36f6797 --- /dev/null +++ b/docs/api/paddle/expand_copy_cn.rst @@ -0,0 +1,25 @@ +.. _cn_api_paddle_expand_copy: + +expand_copy +------------------------------- + +.. py:function:: paddle.expand_copy(x, shape, name=None) + +根据 ``shape`` 指定的形状扩展 ``x``,扩展后返回一个新的 Tensor,不会修改原 Tensor。 + +这是 :ref:`cn_api_paddle_expand` 的非原位版本。 + +参数 +::::::::::: + - **x** (Tensor) - 输入的 Tensor,数据类型为:bool、float16、float32、float64、int32、int64、uint8、uint16、complex64 或 complex128。别名 ``input``。 + - **shape** (tuple|list|Tensor) - 给定输入 ``x`` 扩展后的形状。若 shape 为 list 或 tuple,其中的元素值应全为整数或 0-D 或 1-D Tensor(数据类型为 int32)。别名 ``size``。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +返回 +::::::::::: +Tensor,数据类型与 ``x`` 相同。 + +代码示例 +::::::::::: + +COPY-FROM: paddle.expand_copy diff --git a/docs/api/paddle/linalg/det_cn.rst b/docs/api/paddle/linalg/det_cn.rst index dcb0e78ef65..c88ce267b94 100644 --- a/docs/api/paddle/linalg/det_cn.rst +++ b/docs/api/paddle/linalg/det_cn.rst @@ -3,13 +3,14 @@ det ------------------------------- -.. py:function:: paddle.linalg.det(x) +.. py:function:: paddle.linalg.det(x, *, out=None) 计算批量矩阵的行列式值。 参数 :::::::::::: - - **x** (Tensor):输入一个或批量矩阵。``x`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64。别名 ``input``。 + - **x** (Tensor):输入一个或批量矩阵。``x`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64。别名 ``input``、 ``A``。 + - **out** (Tensor,可选):指定输出的存储结果的 Tensor,如果提供,返回值将是 ``out`` 本身。默认值为 ``None``。 返回 :::::::::::: diff --git a/docs/api/paddle/logdet_cn.rst b/docs/api/paddle/logdet_cn.rst new file mode 100644 index 00000000000..b401530a12c --- /dev/null +++ b/docs/api/paddle/logdet_cn.rst @@ -0,0 +1,26 @@ +.. _cn_api_paddle_logdet: + +logdet +------------------------------- + +.. py:function:: paddle.logdet(x, name=None) + +计算一个或一批方阵的行列式的自然对数。 + +如果行列式值为正数,则返回行列式的自然对数;如果行列式值为负数或零,则返回 ``NaN``。 + +参数 +:::::::::::: + + - **x** (Tensor) - 输入一个或批量方阵。``x`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64、complex64、complex128。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +返回 +:::::::::::: + +Tensor,输出矩阵的行列式的自然对数值。 + +代码示例 +:::::::::::: + +COPY-FROM: paddle.logdet diff --git a/docs/api/paddle/nn/functional/gumbel_softmax_cn.rst b/docs/api/paddle/nn/functional/gumbel_softmax_cn.rst index e62cb84c81e..5291b92547b 100644 --- a/docs/api/paddle/nn/functional/gumbel_softmax_cn.rst +++ b/docs/api/paddle/nn/functional/gumbel_softmax_cn.rst @@ -2,7 +2,7 @@ gumbel_softmax ------------------------------- -.. py:function:: paddle.nn.functional.gumbel_softmax(x, temperature = 1.0, hard = False, axis = -1, name = None) +.. py:function:: paddle.nn.functional.gumbel_softmax(x, temperature = 1.0, hard = False, axis = -1, name = None, eps = None) 实现了按 Gumbel-Softmax 分布进行采样的功能,通过 hard 可选择是否离散化。记 temperature 为 ``t``,涉及到的等式如下: @@ -32,6 +32,7 @@ gumbel_softmax - **hard** (bool,可选) - 如果是 True,返回离散的 one-hot 向量。如果是 False,返回软样本。默认值:False。 - **axis** (int,可选) - 按照维度 axis 计算 softmax。默认值:-1。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **eps** (float,可选) - 此参数已被废弃,不产生任何作用。默认值为 None。 返回 :::::::::: diff --git a/docs/api/paddle/true_divide__cn.rst b/docs/api/paddle/true_divide__cn.rst new file mode 100644 index 00000000000..c191b8ef63a --- /dev/null +++ b/docs/api/paddle/true_divide__cn.rst @@ -0,0 +1,24 @@ +.. _cn_api_paddle_true_divide_: + +true_divide_ +------------------------------- + +.. py:function:: paddle.true_divide_(x, y, name=None) + +该 API 是 ``true_divide`` 的 inplace 版本,对输入 Tensor 进行原地除法操作。 + +参数 +:::::::::::: + + - **x** (Tensor) - 输入的 Tensor,会被原地修改。别名 ``input``。 + - **y** (Tensor) - 输入的 Tensor,作为除数。别名 ``other``。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +返回 +:::::::::::: +Tensor,与 ``x`` 是同一个 Tensor,包含逐元素除法后的结果。 + +代码示例 +:::::::::::: + +COPY-FROM: paddle.true_divide_ diff --git a/docs/api/paddle/vstack_cn.rst b/docs/api/paddle/vstack_cn.rst index d43b4e7f387..cdc264e9688 100644 --- a/docs/api/paddle/vstack_cn.rst +++ b/docs/api/paddle/vstack_cn.rst @@ -3,7 +3,7 @@ vstack ------------------------------- -.. py:function:: paddle.vstack(x, name=None) +.. py:function:: paddle.vstack(x, name=None, *, out=None) 沿垂直轴堆叠输入 ``x`` 中的所有张量。所有张量必须具有相同的数据类型。 @@ -12,6 +12,7 @@ vstack - **x** (list[Tensor]|tuple[Tensor]) - 输入 ``x`` 可以是张量的 list 或 tuple, ``x`` 中张量的数据类型必须相同。支持的数据类型: ``float16`` 、 ``float32`` 、 ``float64`` 、 ``int32`` 、 ``int64`` 或 ``bfloat16`` 。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **out** (Tensor,可选) - 指定输出的存储结果的 Tensor,如果提供,返回值将是 ``out`` 本身。默认值为 ``None``。 返回 :::::::::::: diff --git a/docs/dev_guides/coding_agent/api_compatibility/.claude/skills/cpp-sink/SKILL.md b/docs/dev_guides/coding_agent/api_compatibility/.claude/skills/cpp-sink/SKILL.md index be7ebe28b08..c9bedab9c3a 100644 --- a/docs/dev_guides/coding_agent/api_compatibility/.claude/skills/cpp-sink/SKILL.md +++ b/docs/dev_guides/coding_agent/api_compatibility/.claude/skills/cpp-sink/SKILL.md @@ -36,7 +36,7 @@ disable-model-invocation: false ### Step 2:迁移文档到 `_paddle_docs.py` -使用 `add_doc_and_signature` 函数迁移文档,关键要点: +使用 `add_doc_and_signature` 装饰器迁移文档,关键要点: 1. **Alias 说明格式**:在 Args 部分为有别名的参数添加 `Alias: ``alias_name``` 2. **out 参数处理**:keyword-only 参数放在 `Keyword Args:` 部分,位置参数放在 `Args:` 部分,如下: @@ -58,28 +58,43 @@ Args: **示例**: ```python -add_doc_and_signature( - "log2", - r""" - Calculates the log to the base 2 of the given input tensor, element-wise. - ... - Args: - x (Tensor): Input tensor. Alias: ``input``. - ... - Keyword Args: - out (Tensor, optional): The output tensor. Default: None. - Returns: - ... -""", - """ +@add_doc_and_signature def log2( x: Tensor, name: str | None = None, *, out: Tensor | None = None, -) -> Tensor -""", -) +) -> Tensor: + r""" + Calculates the log to the base 2 of the given input tensor, element-wise. + + .. math:: + + Out = \log_2x + + Args: + x (Tensor): Input tensor must be one of the following types: int32, int64, float16, bfloat16, float32, float64, complex64, complex128. + name (str|None, optional): Name for the operation (optional, default is None). For more information, please refer to :ref:`api_guide_Name`. + out (Tensor, optional): The output Tensor. If set, the result will be stored in this Tensor. Default: None. + + Returns: + Tensor: The log to the base 2 of the input Tensor computed element-wise. + + Examples: + + .. code-block:: pycon + + >>> import paddle + + >>> # example 1: x is a float + >>> x_i = paddle.to_tensor([[1.0], [2.0]]) + >>> res = paddle.log2(x_i) + >>> res + Tensor(shape=[2, 1], dtype=float32, place=Place(cpu), stop_gradient=True, + [[0.], + [1.]]) + """ + ... ``` **注意**: @@ -95,10 +110,10 @@ def log2( 2. 直接**删除**原有的 Python 函数实现 ```python -# 在文件最上方合适位置导入(不要添加注释) +# 在文件最上方合适位置导入 from paddle._C_ops import log2 # noqa: F401 -# 以下内容全部删除(不要添加注释) +# 以下内容全部删除 # def log2(x: Tensor, name: str | None = None) -> Tensor: # ... ``` @@ -234,7 +249,7 @@ Returns: 1. 严格按标准工作流程执行,杜绝自行臆断和跳过步骤 2. 若 Python API 参数顺序与`_C_ops` API 不同,属于特殊情况,Cpp 下沉方案无法实现,需要使用 Python 装饰器方案 3. 代码中不允许提交中文,代码注释采用英文 -4. 若 API 需支持`out`参数,必须修改`add_doc_and_signature`中的字符串,增加 out 参数 +4. 若 API 需支持`out`参数,必须在 API 签名中 out 参数 5. 不要修改`generated_tensor_methods_patch.py`,该文件是自动生成的,修改没有意义,如无法对齐可考虑放弃 C++下沉方案而不是改动该文件 6. 示例代码若涉及多种数据类型,可能触发类型检查误报,添加注释忽略: ```python diff --git a/docs/dev_guides/coding_agent/api_compatibility/.claude/skills/update-docs/SKILL.md b/docs/dev_guides/coding_agent/api_compatibility/.claude/skills/update-docs/SKILL.md index 9c3ea2bd468..d9c3d1c9153 100644 --- a/docs/dev_guides/coding_agent/api_compatibility/.claude/skills/update-docs/SKILL.md +++ b/docs/dev_guides/coding_agent/api_compatibility/.claude/skills/update-docs/SKILL.md @@ -43,6 +43,8 @@ Step 3. **更新中文文档与英文一致** 6. **文档描述原则** - 不要在文档中强调"PyTorch 风格"、"PyTorch 签名"、"PyTorch 适配"等 Pytorch 相关内容 - 参数别名说明只需简单注明"别名 xxx" +7. 无需修改 `${ROOT_DIR}/docs/guides/model_convert/convert_from_pytorch` 目录中的映射文档 + # 四、常见修改模式 From ed8d97a54399fa6cc623f06e088ceab310256d21 Mon Sep 17 00:00:00 2001 From: zhouwei25 Date: Mon, 6 Jul 2026 10:44:09 +0000 Subject: [PATCH 2/5] [API Compatibility] update qr docs: document mode=r returns single Tensor difference from PyTorch Co-Authored-By: Claude Opus 4.6 --- docs/api/paddle/Overview_cn.rst | 1 + docs/api/paddle/clamp_max_cn.rst | 10 ++---- docs/api/paddle/compat/Overview_cn.rst | 1 + docs/api/paddle/cross_cn.rst | 8 +++-- docs/api/paddle/hstack_cn.rst | 8 +++-- docs/api/paddle/linalg/cholesky_cn.rst | 8 +++-- docs/api/paddle/linalg/eigh_cn.rst | 8 +++-- docs/api/paddle/linalg/qr_cn.rst | 26 +++++++++++--- docs/api/paddle/logdet_cn.rst | 4 +-- docs/api/paddle/nn/ELU_cn.rst | 3 +- docs/api/paddle/nn/functional/elu_cn.rst | 5 +-- .../paddle/nn/functional/instance_norm_cn.rst | 9 +++-- docs/api/paddle/nn/functional/prelu_cn.rst | 2 +- docs/api/paddle/true_divide__cn.rst | 8 ++--- .../torch.Tensor.true_divide_.md | 7 ++-- .../args_name_diff/torch.hstack.md | 3 +- .../composite_implement/torch.Tensor.H.md | 7 ++-- .../composite_implement/torch.logdet.md | 4 +-- .../torch.Tensor.logical_and_.md | 4 +++ .../torch_more_args/torch.clamp_max.md | 24 ++++--------- .../torch_more_args/torch.linalg.cholesky.md | 19 +++------- .../torch_more_args/torch.linalg.cross.md | 22 ++++-------- .../torch_more_args/torch.linalg.eigh.md | 18 +++------- .../torch_more_args/torch.linalg.qr.md | 35 +++++++++++++++---- .../torch_more_args/torch.nn.ELU.md | 6 ++-- .../torch.nn.functional.elu.md | 20 ----------- .../torch_more_args/torch.qr.md | 33 +++++------------ 27 files changed, 145 insertions(+), 158 deletions(-) delete mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.functional.elu.md diff --git a/docs/api/paddle/Overview_cn.rst b/docs/api/paddle/Overview_cn.rst index e7bbbcc3fbe..5265fcb91b1 100755 --- a/docs/api/paddle/Overview_cn.rst +++ b/docs/api/paddle/Overview_cn.rst @@ -215,6 +215,7 @@ tensor 数学操作原位(inplace)版本 " :ref:`paddle.put_along_axis_ ` ", "Inplace 版本的 put_along_axis API,对输入 x 采用 Inplace 策略" " :ref:`paddle.cauchy_ ` ", "直接修改输入 x,将所有元素替换为从柯西分布中随机采样的数值" " :ref:`paddle.ceil_ ` ", "Inplace 版本的 ceil API,对输入 x 采用 Inplace 策略" + " :ref:`paddle.clamp_ ` ", "Inplace 版本的 clamp API,对输入 x 采用 Inplace 策略" " :ref:`paddle.clip_ ` ", "Inplace 版本的 clip API,对输入 x 采用 Inplace 策略" " :ref:`paddle.copysign_ ` ", "Inplace 版本的 copysign API,对输入 x 采用 Inplace 策略" " :ref:`paddle.cumprod_ ` ", "Inplace 版本的 cumprod API,对输入 x 采用 Inplace 策略" diff --git a/docs/api/paddle/clamp_max_cn.rst b/docs/api/paddle/clamp_max_cn.rst index 420f3cea624..5e153435f85 100644 --- a/docs/api/paddle/clamp_max_cn.rst +++ b/docs/api/paddle/clamp_max_cn.rst @@ -3,7 +3,7 @@ clamp_max ------------------------------- -.. py:function:: paddle.clamp_max(x, max=None, name=None, *, out=None) +.. py:function:: paddle.clamp_max(input, max=None, *, out=None) 该 API 将输入中的所有元素进行裁剪,使得输出元素不大于给定的最大值,具体公式如下: @@ -11,15 +11,11 @@ clamp_max Out = MIN(x, max) -.. note:: - 别名支持: 参数名 ``input`` 可替代 ``x``,如 ``clamp_max(input=tensor_x, max=0.5)`` 等价于 ``clamp_max(x=tensor_x, max=0.5)``。 - 参数 :::::::::::: - - **x** (Tensor) - 输入的 Tensor,数据类型为:float16、float32、float64、int32、int64。别名: ``input``。 + - **input** (Tensor) - 输入的 Tensor,数据类型为:float16、float32、float64、int32、int64。 - **max** (float|int|Tensor,可选) - 裁剪的最大值,输入中大于该值的元素将由该元素代替。数据类型可以是 float32 或形状为 [] 的 0-D Tensor,默认值为 None。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 关键字参数 :::::::::::: @@ -27,7 +23,7 @@ clamp_max 返回 :::::::::::: -输出 Tensor,与 ``x`` 维度相同。当 ``x`` 数据类型为 int32 或 int64 且 ``max`` 为 float 类型时,输出 Tensor 的数据类型为 float32,否则与输入 ``x`` 的数据类型相同。 +输出 Tensor,与 ``input`` 维度相同。当 ``input`` 数据类型为 int32 或 int64 且 ``max`` 为 float 类型时,输出 Tensor 的数据类型为 float32,否则与输入 ``input`` 的数据类型相同。 代码示例 :::::::::::: diff --git a/docs/api/paddle/compat/Overview_cn.rst b/docs/api/paddle/compat/Overview_cn.rst index b084c0395b1..70b54b31a14 100644 --- a/docs/api/paddle/compat/Overview_cn.rst +++ b/docs/api/paddle/compat/Overview_cn.rst @@ -21,6 +21,7 @@ PyTorch 兼容函数 " :ref:`slogdet ` ", "slogdet 函数" " :ref:`sort ` ", "同时返回 values 及 indices 的排序" " :ref:`split ` ", "允许非整除块大小输入的 Tensor 轴向切分" + " :ref:`logical_and_ ` ", "Inplace 版本的逻辑与运算,保留输入 Tensor 数据类型" .. _about_compat_nn: diff --git a/docs/api/paddle/cross_cn.rst b/docs/api/paddle/cross_cn.rst index 0356d90752c..d6ff3de7411 100644 --- a/docs/api/paddle/cross_cn.rst +++ b/docs/api/paddle/cross_cn.rst @@ -3,7 +3,7 @@ cross ------------------------------- -.. py:function:: paddle.cross(x, y, axis=9, name=None) +.. py:function:: paddle.cross(x, y, axis=-1, name=None, *, out=None) 计算 Tensor ``x`` 和 ``y`` 在 ``axis`` 维度上的向量积(叉积)。 @@ -14,9 +14,13 @@ cross ::::::::: - **x** (Tensor) - 第一个输入 Tensor,数据类型为:float16、float32、float64、int32、int64、complex64、complex128。别名 ``input``。 - **y** (Tensor) - 第二个输入 Tensor,数据类型为:float16、float32、float64、int32、int64、complex64、complex128。别名 ``other``。 - - **axis** (int,可选) - 沿着此维进行向量积操作。别名 ``dim``。默认值是 9,意思是选取第一个长度为 3 的 ``axis`` 。 + - **axis** (int,可选) - 沿着此维进行向量积操作。别名 ``dim``。默认值是 -1,意思是选取第一个长度为 3 的 ``axis`` 。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 +关键字参数 +:::::::::::: + - **out** (Tensor,可选) - 输出 Tensor,若不为 ``None``,计算结果将保存在该 Tensor 中,默认值为 ``None``。 + 返回 ::::::::: 计算后的 Tensor,数据类型与输入 ``x`` 相同。 diff --git a/docs/api/paddle/hstack_cn.rst b/docs/api/paddle/hstack_cn.rst index e6a3b03e539..ab962836851 100644 --- a/docs/api/paddle/hstack_cn.rst +++ b/docs/api/paddle/hstack_cn.rst @@ -3,16 +3,20 @@ hstack ------------------------------- -.. py:function:: paddle.hstack(x, name=None) +.. py:function:: paddle.hstack(x, name=None, *, out=None) 沿水平轴堆叠输入 ``x`` 中的所有张量。所有张量必须具有相同的数据类型。 参数 :::::::::::: - - **x** (list[Tensor]|tuple[Tensor]) - 输入 ``x`` 可以是张量的 list 或 tuple, ``x`` 中张量的数据类型必须相同。支持的数据类型: ``float16`` 、 ``float32`` 、 ``float64`` 、 ``int32`` 、 ``int64`` 或 ``bfloat16`` 。 + - **x** (list[Tensor]|tuple[Tensor]) - 输入 ``x`` 可以是张量的 list 或 tuple, ``x`` 中张量的数据类型必须相同。支持的数据类型: ``float16`` 、 ``float32`` 、 ``float64`` 、 ``int32`` 、 ``int64`` 或 ``bfloat16`` 。别名 ``tensors``。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 +关键字参数 +:::::::::::: + - **out** (Tensor,可选) - 输出 Tensor,若不为 ``None``,计算结果将保存在该 Tensor 中,默认值为 ``None``。 + 返回 :::::::::::: Tensor,与输入数据类型相同的堆叠张量。 diff --git a/docs/api/paddle/linalg/cholesky_cn.rst b/docs/api/paddle/linalg/cholesky_cn.rst index 454b79136d3..f58b914e0cd 100644 --- a/docs/api/paddle/linalg/cholesky_cn.rst +++ b/docs/api/paddle/linalg/cholesky_cn.rst @@ -3,7 +3,7 @@ cholesky ------------------------------- -.. py:function:: paddle.linalg.cholesky(x, upper=False, name=None) +.. py:function:: paddle.linalg.cholesky(x, upper=False, name=None, *, out=None) @@ -15,10 +15,14 @@ cholesky 参数 :::::::::::: - - **x** (Tensor)- 输入变量为多维 Tensor,它的维度应该为 ``[*, M, M]``,其中*为零或更大的批次尺寸,并且最里面的两个维度上的矩阵都应为对称的正定矩阵,支持数据类型为 float32、float64。 + - **x** (Tensor)- 输入变量为多维 Tensor,它的维度应该为 ``[*, M, M]``,其中*为零或更大的批次尺寸,并且最里面的两个维度上的矩阵都应为对称的正定矩阵,支持数据类型为 float32、float64。别名 ``input``。 - **upper** (bool)- 指示是否返回上三角矩阵或下三角矩阵。默认值:False。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 +关键字参数 +:::::::::::: + - **out** (Tensor,可选) - 输出 Tensor,若不为 ``None``,计算结果将保存在该 Tensor 中,默认值为 ``None``。 + 返回 :::::::::::: Tensor,与 ``x`` 具有相同形状和数据类型。它代表了 Cholesky 分解生成的三角矩阵。 diff --git a/docs/api/paddle/linalg/eigh_cn.rst b/docs/api/paddle/linalg/eigh_cn.rst index 1b21026bc43..7d623053c86 100644 --- a/docs/api/paddle/linalg/eigh_cn.rst +++ b/docs/api/paddle/linalg/eigh_cn.rst @@ -3,16 +3,20 @@ eigh ------------------------------- -.. py:function:: paddle.linalg.eigh(x, UPLO='L', name=None) +.. py:function:: paddle.linalg.eigh(x, UPLO='L', name=None, *, out=None) 计算厄米特矩阵或者实数对称矩阵的特征值和特征向量。 参数 :::::::::::: - - **x** (Tensor):输入一个或一批厄米特矩阵或者实数对称矩阵。``x`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64、complex64、complex128。 + - **x** (Tensor):输入一个或一批厄米特矩阵或者实数对称矩阵。``x`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64、complex64、complex128。别名 ``input``。 - **UPLO** (str,可选):表示计算上三角或者下三角矩阵,默认值为 'L',表示计算下三角矩阵的特征值和特征向量,'U'表示计算上三角矩阵的特征值和特征向量。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 +关键字参数 +:::::::::::: + - **out** (tuple[Tensor, Tensor],可选) - 输出 Tensor 元组,若不为 ``None``,计算结果将保存在该 Tensor 元组中,默认值为 ``None``。 + 返回 :::::::::::: diff --git a/docs/api/paddle/linalg/qr_cn.rst b/docs/api/paddle/linalg/qr_cn.rst index 3aab06aad47..e274e713e7d 100644 --- a/docs/api/paddle/linalg/qr_cn.rst +++ b/docs/api/paddle/linalg/qr_cn.rst @@ -3,8 +3,9 @@ qr ------------------------------- -.. py:function:: paddle.linalg.qr(x, mode="reduced", name=None) +.. py:function:: paddle.linalg.qr(x, mode="reduced", name=None, *, out=None) +**注意**:该 API 与 PyTorch 的行为存在差异(详见下方说明)。 计算一个或一批矩阵的正交三角分解,也称 QR 分解(暂不支持反向)。 @@ -19,15 +20,30 @@ qr 参数 :::::::::::: - - **x** (Tensor):输入进行正交三角分解的一个或一批方阵,类型为 Tensor。 ``x`` 的形状应为 ``[*, M, N]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32, float64。 - - **mode** (str,可选):控制正交三角分解的行为,默认是 ``reduced``,假设 ``x`` 形状应为 ``[*, M, N]`` 和 ``K = min(M, N)``:如果 ``mode = "reduced"``,则 :math:`Q` 形状为 ``[*, M, K]`` 和 :math:`R` 形状为 ``[*, K, N]``;如果 ``mode = "complete"``,则 :math:`Q` 形状为 ``[*, M, M]`` 和 :math:`R` 形状为 ``[*, M, N]``;如果 ``mode = "r"``,则不返回 :math:`Q`,只返回 :math:`R` 且形状为 ``[*, K, N]`` 。 + - **x** (Tensor):输入进行正交三角分解的一个或一批方阵,类型为 Tensor。 ``x`` 的形状应为 ``[*, M, N]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32, float64。别名 ``input``, ``A``。 + - **mode** (str,可选):控制正交三角分解的行为,默认是 ``reduced``,假设 ``x`` 形状应为 ``[*, M, N]`` 和 ``K = min(M, N)``: + 如果 ``mode = "reduced"``,则 :math:`Q` 形状为 ``[*, M, K]`` 和 :math:`R` 形状为 ``[*, K, N]``; + 如果 ``mode = "complete"``,则 :math:`Q` 形状为 ``[*, M, M]`` 和 :math:`R` 形状为 ``[*, M, N]``; + 如果 ``mode = "r"``,则**只返回**缩减的 :math:`R`,其形状为 ``[*, K, N]``。 + (与 PyTorch 不同:PyTorch 的 ``linalg.qr`` 在 ``mode='r'`` 时仍返回 ``(Q, R)`` 具名元组,其中 Q 为空张量; + Paddle 直接返回单个 Tensor R。) - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **out** (Tensor|tuple,可选) - 指定输出的张量。 + 当 ``mode = "r"`` 时,为一个 Tensor 用于存储 R; + 否则为一个 ``(Q, R)`` 张量元组,默认值为 None。 返回 :::::::::::: - - Tensor Q,正交三角分解的 Q 正交矩阵,需注意如果 ``mode = "reduced"``,则不返回 Q 矩阵,只返回 R 矩阵。 - - Tensor R,正交三角分解的 R 上三角矩阵。 + - 如果 ``mode = "r"``,返回 Tensor R,即缩减的上三角矩阵。 + - 否则返回 ``QrRetType(Q, R)`` 具名元组: + - Tensor Q,正交三角分解的 Q 正交矩阵。 + - Tensor R,正交三角分解的 R 上三角矩阵。 + + .. note:: + 与 PyTorch 不同,当 ``mode='r'`` 时,Paddle 直接返回 Tensor R, + 而非 ``(Q, R)`` 元组。如果需要与 PyTorch 代码完全兼容,建议使用 + ``mode='reduced'`` 并忽略 Q。 代码示例 :::::::::: diff --git a/docs/api/paddle/logdet_cn.rst b/docs/api/paddle/logdet_cn.rst index b401530a12c..9c8da415645 100644 --- a/docs/api/paddle/logdet_cn.rst +++ b/docs/api/paddle/logdet_cn.rst @@ -3,7 +3,7 @@ logdet ------------------------------- -.. py:function:: paddle.logdet(x, name=None) +.. py:function:: paddle.logdet(input, name=None) 计算一个或一批方阵的行列式的自然对数。 @@ -12,7 +12,7 @@ logdet 参数 :::::::::::: - - **x** (Tensor) - 输入一个或批量方阵。``x`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64、complex64、complex128。 + - **input** (Tensor) - 输入一个或批量方阵。``input`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64、complex64、complex128。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 diff --git a/docs/api/paddle/nn/ELU_cn.rst b/docs/api/paddle/nn/ELU_cn.rst index 1c08ca8aa27..b16eb9e008a 100644 --- a/docs/api/paddle/nn/ELU_cn.rst +++ b/docs/api/paddle/nn/ELU_cn.rst @@ -2,7 +2,7 @@ ELU ------------------------------- -.. py:class:: paddle.nn.ELU(alpha=1.0, name=None) +.. py:class:: paddle.nn.ELU(alpha=1.0, inplace=False, name=None) ELU 激活层(ELU Activation Operator) @@ -23,6 +23,7 @@ ELU 激活层(ELU Activation Operator) 参数 :::::::::: - **alpha** (float,可选) - ELU 的 alpha 值,默认值为 1.0。 + - **inplace** (bool,可选) - 是否在不更改变量的内存地址的情况下,直接修改变量的值,默认值为 False。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 形状 diff --git a/docs/api/paddle/nn/functional/elu_cn.rst b/docs/api/paddle/nn/functional/elu_cn.rst index 81118671f3f..e6bda48aee3 100644 --- a/docs/api/paddle/nn/functional/elu_cn.rst +++ b/docs/api/paddle/nn/functional/elu_cn.rst @@ -3,7 +3,7 @@ elu ------------------------------- -.. py:function:: paddle.nn.functional.elu(x, alpha=1.0, name=None) +.. py:function:: paddle.nn.functional.elu(x, alpha=1.0, inplace=False, name=None) elu 激活层(ELU Activation Operator) @@ -23,8 +23,9 @@ elu 激活层(ELU Activation Operator) 参数 :::::::::: - - **x** (Tensor) - 输入的 ``Tensor``,数据类型为:float32、float64。 + - **x** (Tensor) - 输入的 ``Tensor``,数据类型为:float32、float64。别名 ``input``。 - **alpha** (float,可选) - elu 的 alpha 值,默认值为 1.0。 + - **inplace** (bool,可选) - 是否在不更改变量的内存地址的情况下,直接修改变量的值,默认值为 False。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 diff --git a/docs/api/paddle/nn/functional/instance_norm_cn.rst b/docs/api/paddle/nn/functional/instance_norm_cn.rst index bf0c9570b2c..b54f266378f 100644 --- a/docs/api/paddle/nn/functional/instance_norm_cn.rst +++ b/docs/api/paddle/nn/functional/instance_norm_cn.rst @@ -3,14 +3,19 @@ instance_norm ------------------------------- -.. py:class:: paddle.nn.functional.instance_norm(x, running_mean=None, running_var=None, weight=None, bias=None, use_input_stats=True, momentum=0.9, eps=1e-05, data_format='NCHW', name=None) +.. py:function:: paddle.nn.functional.instance_norm(x, running_mean=None, running_var=None, weight=None, bias=None, use_input_stats=True, momentum=0.9, eps=1e-05, data_format='NCHW', name=None) + +.. note:: + 此 API 有两种调用方式: + 1. ``paddle.nn.functional.instance_norm(x, running_mean=None, running_var=None, weight=None, bias=None, use_input_stats=True, momentum=0.9, eps=1e-05, data_format='NCHW', name=None)`` (Paddle 风格)。 + 2. ``paddle.nn.functional.instance_norm(input, running_mean=None, running_var=None, weight=None, bias=None, use_input_stats=True, momentum=0.1, eps=1e-05)`` (PyTorch 风格)。 推荐使用 :ref:`cn_api_paddle_nn_InstanceNorm1D`,:ref:`cn_api_paddle_nn_InstanceNorm2D`,:ref:`cn_api_paddle_nn_InstanceNorm3D`,由内部调用此方法。 参数 :::::::::::: - - **x** (Tensor) - 输入,数据类型为 float32, float64。 + - **x** (Tensor) - 输入,数据类型为 float32, float64。别名 ``input``。 - **running_mean** (Tensor,可选) - 均值的 Tensor。过时(已被删除,无法使用) - **running_var** (Tensor,可选) - 方差的 Tensor。过时(已被删除,无法使用) - **weight** (Tensor,可选) - 权重的 Tensor。默认值:None. 如果 weight 为 None 则 weight 被初始化为全 1 的 Tensor. diff --git a/docs/api/paddle/nn/functional/prelu_cn.rst b/docs/api/paddle/nn/functional/prelu_cn.rst index 8a5f421c96a..384281cd6f9 100644 --- a/docs/api/paddle/nn/functional/prelu_cn.rst +++ b/docs/api/paddle/nn/functional/prelu_cn.rst @@ -15,7 +15,7 @@ prelu 激活层(PRelu Activation Operator)。计算公式如下: 参数 :::::::::: - - **x** (Tensor) - 输入的 ``Tensor``,数据类型为:float32、float64。 + - **x** (Tensor) - 输入的 ``Tensor``,数据类型为:float32、float64。别名 ``input``。 - **weight** (Tensor) - 可训练参数,数据类型同``x`` 一致,形状支持:[]、[1] 或者 [in],其中 ``in`` 为输入的通道数。 - **data_format** (str,可选) – 指定输入的数据格式,输出的数据格式将与输入保持一致,可以是 "NC", "NCL", "NCHW", "NCDHW", "NLC", "NHWC" 或者 "NDHWC"。默认值:"NCHW"。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 diff --git a/docs/api/paddle/true_divide__cn.rst b/docs/api/paddle/true_divide__cn.rst index c191b8ef63a..8612efefab3 100644 --- a/docs/api/paddle/true_divide__cn.rst +++ b/docs/api/paddle/true_divide__cn.rst @@ -3,20 +3,20 @@ true_divide_ ------------------------------- -.. py:function:: paddle.true_divide_(x, y, name=None) +.. py:function:: paddle.true_divide_(input, other, name=None) 该 API 是 ``true_divide`` 的 inplace 版本,对输入 Tensor 进行原地除法操作。 参数 :::::::::::: - - **x** (Tensor) - 输入的 Tensor,会被原地修改。别名 ``input``。 - - **y** (Tensor) - 输入的 Tensor,作为除数。别名 ``other``。 + - **input** (Tensor) - 输入的 Tensor,会被原地修改。 + - **other** (Tensor) - 输入的 Tensor,作为除数。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: -Tensor,与 ``x`` 是同一个 Tensor,包含逐元素除法后的结果。 +Tensor,与 ``input`` 是同一个 Tensor,包含逐元素除法后的结果。 代码示例 :::::::::::: diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.Tensor.true_divide_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.Tensor.true_divide_.md index af45e617ed3..a98b75a91e4 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.Tensor.true_divide_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.Tensor.true_divide_.md @@ -4,15 +4,16 @@ torch.Tensor.true_divide_(other) ``` -### [paddle.Tensor.divide_]() +### [paddle.Tensor.true\_divide\_]() ```python -paddle.Tensor.divide_(y) +paddle.Tensor.true_divide_(other) ``` +两者功能一致,可直接使用。 两者功能一致且参数用法一致,仅参数名不一致,具体如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | -------- | ------------ | -------------------------------- | -| other | y | 表示输入的 Tensor,仅参数名不一致。 | +| other | other | 表示输入的 Tensor。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.hstack.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.hstack.md index b2a41d312cf..6d603c3c90c 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.hstack.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.hstack.md @@ -6,7 +6,7 @@ torch.hstack(tensors, *, out=None) ### [paddle.hstack](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/hstack_cn.html#paddle.hstack) ```python -paddle.hstack(x, name=None) +paddle.hstack(x, name=None, *, out=None) ``` 其中 Paddle 相比 PyTorch 仅参数名不一致,具体如下: @@ -16,3 +16,4 @@ paddle.hstack(x, name=None) | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ | ------------------------------------------------------ | | tensors | x | 表示输入的 Tensor ,仅参数名不一致。 | +| out | out | 表示输出的 Tensor。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md index 9294eb72970..d1fe2becfef 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md @@ -4,9 +4,8 @@ torch.Tensor.H ``` -Paddle 无此 API,需要组合实现。 -PyTorch 中等于 x.transpose(0, 1).conj(),Paddle 中 transpose 参数 perm 为转换后的维度位置。 -该 API 仅针对 2D。 +Paddle 现已支持该 API,可直接使用。 +该 API 仅针对 2D Tensor。 ### 转写示例 ```python @@ -14,5 +13,5 @@ PyTorch 中等于 x.transpose(0, 1).conj(),Paddle 中 transpose 参数 perm y = x.H # Paddle 写法 -y = x.transpose(perm=[1, 0]).conj() +y = x.H ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.logdet.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.logdet.md index 83922409ec9..8e1ca40afa4 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.logdet.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.logdet.md @@ -3,7 +3,7 @@ ```python torch.logdet(input) ``` -Paddle 无此 API,需要组合实现。 +Paddle 现已支持该 API,可直接使用。 ### 转写示例 ```python @@ -11,5 +11,5 @@ Paddle 无此 API,需要组合实现。 y = torch.logdet(input) # Paddle 写法 -y = paddle.log(paddle.linalg.det(input)) +y = paddle.logdet(input) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/output_args_type_diff/torch.Tensor.logical_and_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/output_args_type_diff/torch.Tensor.logical_and_.md index c1aa7db60cb..de9cff18382 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/output_args_type_diff/torch.Tensor.logical_and_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/output_args_type_diff/torch.Tensor.logical_and_.md @@ -31,3 +31,7 @@ x.logical_and_(tensor_y) # Paddle 写法 _x_dtype_ = x.dtype x.logical_and_(tensor_y).cast(_x_dtype_) + +# 也可使用 Paddle 的兼容 API +paddle.compat.logical_and_(x, y) # 自动处理返回类型 +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.clamp_max.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.clamp_max.md index fbd64e23ec6..a23fa6953f5 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.clamp_max.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.clamp_max.md @@ -8,31 +8,19 @@ torch.clamp_max(input, out=None) ``` -### [paddle.clip](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/clip_cn.html#paddle.clip) +### [paddle.clamp_max](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/clamp_max_cn.html#paddle.clamp_max) ```python -paddle.clip(x, - min=None, +paddle.clamp_max(x, max=None, - name=None) + *, + out=None) ``` -PyTorch 相比 Paddle 支持更多其他参数,具体如下: +两者功能一致,PyTorch 相比 Paddle 支持更多其他参数,具体如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ | ------------------------------------------------------ | | input | x | 表示输入的 Tensor ,仅参数名不一致。 | -| - | min | 表示裁剪的最小值。PyTorch 无此参数, Paddle 保持默认即可。 | | max | max | 表示裁剪的最大值。 | -| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 | - - -### 转写示例 -#### out:指定输出 -```python -# PyTorch 写法 -torch.clamp_max(input, max=0.5, out=y) - -# Paddle 写法 -paddle.assign(paddle.clip(input, max=0.5), y) -``` +| out | out | 表示输出的 Tensor。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cholesky.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cholesky.md index f31da904b59..1dbee54faca 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cholesky.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cholesky.md @@ -6,26 +6,15 @@ torch.linalg.cholesky(input, *, upper=False, out=None) ### [paddle.linalg.cholesky](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/cholesky_cn.html#paddle.linalg.cholesky) ```python -paddle.linalg.cholesky(x, upper=False, name=None) +paddle.linalg.cholesky(x, upper=False, name=None, *, out=None) ``` -PyTorch 相比 Paddle 支持更多其他参数,具体如下: +两者功能一致。 ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------- | ------- | ------- | -| input | x | 表示输入参数为多维 Tensor,它的维度应该为 [*, M, N],其中*为零或更大的批次尺寸,并且最里面的两个维度上的矩阵都应为对称的正定矩阵,仅参数名不一致。 | +| input | x | 表示输入参数为多维 Tensor,它的维度应该为 [*, M, N],其中*为零或更大的批次尺寸,并且最里面的两个维度上的矩阵都应为对称的正定矩阵,仅参数名不一致。 别名 ``input``。 | | upper | upper | 表示是否返回上三角矩阵或下三角矩阵。 | -| out | - | 表示输出的 Tensor ,Paddle 无此参数,需要转写。 | - -### 转写示例 -#### out: 输出的 Tensor -```python -# PyTorch 写法 -torch.linalg.cholesky(x, upper=False, out=output) - - -# Paddle 写法 -paddle.assign(paddle.linalg.cholesky(x, upper=False),output) -``` +| out | out | 表示输出的 Tensor。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cross.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cross.md index 1951b76f63f..4d0a53013b0 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cross.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cross.md @@ -6,26 +6,16 @@ torch.linalg.cross(input, other, *, dim=- 1, out=None) ### [paddle.cross](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/cross_cn.html#paddle.cross) ```python -paddle.cross(x, y, axis=None, name=None) +paddle.cross(x, y, axis=-1, name=None, *, out=None) ``` -PyTorch 相比 Paddle 支持更多其他参数,具体如下: +两者功能一致。 ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ----------------------------------- | ------------ | ----------------------------------------------------------------------- | -| input | x | 表示输入的 Tensor ,仅参数名不一致。 | -| other | y | 表示输入的 Tensor ,仅参数名不一致。 | -| dim | axis | 表示进行运算的维度,参数默认值不一致。PyTorch 默认为`-1`,Paddle 默认为 `None`。 | -| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 | - -### 转写示例 -#### out:指定输出 -```python -# PyTorch 写法 -torch.linalg.cross(input, other, dim=1, out=y) - -# Paddle 写法 -paddle.assign(paddle.cross(input, other, axis=1) , y) -``` +| input | x | 表示输入的 Tensor ,仅参数名不一致。 别名 ``input``。 | +| other | y | 表示输入的 Tensor ,仅参数名不一致。 别名 ``other``。 | +| dim | axis | 表示进行运算的维度。别名 ``dim``。 | +| out | out | 表示输出的 Tensor。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.eigh.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.eigh.md index ba6b567831e..1eb341b2af5 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.eigh.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.eigh.md @@ -6,25 +6,15 @@ torch.linalg.eigh(input, UPLO='L', *, out=None) ### [paddle.linalg.eigh](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/eigh_cn.html#paddle.linalg.eigh) ```python -paddle.linalg.eigh(x, UPLO='L', name=None) +paddle.linalg.eigh(x, UPLO='L', name=None, *, out=None) ``` -PyTorch 相比 Paddle 支持更多其他参数,具体如下: +两者功能一致。 ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------- | ------------ | ------------------------------------------------ | -| input | x | 输入 Tensor,仅参数名不一致。 | +| input | x | 输入 Tensor,仅参数名不一致。 别名 ``input``。 | | UPLO | UPLO | 表示计算上三角或者下三角矩阵。 | -| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 | - -### 转写示例 -#### out 参数:输出的 Tensor -```python -# PyTorch 写法: -torch.linalg.eigh(x, out=y) - -# Paddle 写法: -paddle.assign(paddle.linalg.eigh(x), y) -``` +| out | out | 表示输出的 Tensor 元组。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.qr.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.qr.md index 33f52bec59e..572e2c7c882 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.qr.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.qr.md @@ -6,10 +6,10 @@ torch.linalg.qr(A, mode='reduced', *, out=None) ### [paddle.linalg.qr](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/qr_cn.html#paddle.linalg.qr) ```python -paddle.linalg.qr(x, mode='reduced', name=None) +paddle.linalg.qr(x, mode='reduced', name=None, *, out=None) ``` -PyTorch 相比 Paddle 支持更多其他参数,具体如下: +两者功能一致,参数名和返回值有差异,具体如下: ### 参数映射 @@ -17,14 +17,37 @@ PyTorch 相比 Paddle 支持更多其他参数,具体如下: | ------- | ------------ | -------------------------------------------------- | | A | x | 输入 Tensor,仅参数名不一致。 | | mode | mode | 控制正交三角分解的行为。 | -| out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 | +| out | out | 输出的 Tensor 元组,Paddle 已支持此参数。 | + +### 返回值差异 + +`mode='r'` 时,两者返回值不同: +- **PyTorch**:返回 `(Q, R)` 具名元组,Q 为空张量。 +- **Paddle**:直接返回单个 Tensor **R**(不包含 Q)。 + +因此,对 ``mode='r'`` 的返回值需注意解包方式。 ### 转写示例 -#### out 参数:输出的 Tensor +#### mode='r' 的返回值 ```python # PyTorch 写法: -torch.linalg.qr(x, out=y) +r = torch.linalg.qr(x, mode='r') # 返回 (Q, R) 元组, R 在索引 1 # Paddle 写法: -paddle.assign(paddle.linalg.qr(x), y) +r = paddle.linalg.qr(x, mode='r') # 直接返回 Tensor R +``` + +#### out 参数:输出的 Tensor +```python +# PyTorch 写法 (mode='reduced'): +torch.linalg.qr(x, out=(q, r)) + +# Paddle 写法 (mode='reduced'): +paddle.linalg.qr(x, out=(q, r)) + +# PyTorch 写法 (mode='r',out 为 (Q, R) 元组): +torch.linalg.qr(x, mode='r', out=(q, r)) + +# Paddle 写法 (mode='r',out 为单个 Tensor): +paddle.linalg.qr(x, mode='r', out=r) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.ELU.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.ELU.md index 6b2cbe52706..7d1fb4c6869 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.ELU.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.ELU.md @@ -8,13 +8,15 @@ torch.nn.ELU(alpha=1.0, ### [paddle.nn.ELU](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/nn/ELU_cn.html#paddle.nn.ELU) ```python paddle.nn.ELU(alpha=1.0, + inplace=False, name=None) ``` -PyTorch 相比 Paddle 支持更多其他参数,具体如下: +两者功能一致。 + ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ | ------------------------------------------------------ | | alpha | alpha | 表示公式中的超参数。 | -| inplace | - | 在不更改变量的内存地址的情况下,直接修改变量的值,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 | +| inplace | inplace | 在不更改变量的内存地址的情况下,直接修改变量的值,默认值为 False。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.functional.elu.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.functional.elu.md deleted file mode 100644 index 53db8503b7d..00000000000 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.functional.elu.md +++ /dev/null @@ -1,20 +0,0 @@ -## [ torch 参数更多 ]torch.nn.functional.elu -### [torch.nn.functional.elu](https://docs.pytorch.org/docs/stable/generated/torch.nn.functional.elu.html#torch.nn.functional.elu) -```python -torch.nn.functional.elu(input, alpha=1.0, inplace=False) -``` - -### [paddle.nn.functional.elu](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/nn/functional/elu_cn.html#paddle.nn.functional.elu) -```python -paddle.nn.functional.elu(x, alpha=1.0, name=None) -``` - -PyTorch 相比 Paddle 支持更多其他参数,具体如下: - -### 参数映射 - -| PyTorch | PaddlePaddle | 备注 | -| ------- | ------------ | --------------------------------------------------------------------------------------------------------------- | -| input | x | 输入的 Tensor,仅参数名不一致。 | -| alpha | alpha | alpha 参数。 | -| inplace | - | 表示在不更改变量的内存地址的情况下,直接修改变量的值,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.qr.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.qr.md index a7d5f2b5ba5..fd31cc51b1c 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.qr.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.qr.md @@ -4,44 +4,27 @@ torch.qr(input, some=True, *, out=None) ``` -### [paddle.linalg.qr](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/qr_cn.html#paddle.linalg.qr) +### [paddle.qr](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/qr_cn.html) ```python -paddle.linalg.qr(x, mode='reduced', name=None) +paddle.qr(input, some=True, *, out=None) ``` -PyTorch 相比 Paddle 支持更多其他参数,具体如下: +两者功能一致,参数映射如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ | ------------------------------------------------------ | -| input | x | 表示输入 Tensor,仅参数名不一致。 | -| some | mode | 表示 QR 分解的行为。 需进行转写。 | -| out | - | 表示输出的 Tensor 元组。 Paddle 无此参数,需要转写。 | +| input | input | 表示输入 Tensor。 | +| some | some | 表示 QR 分解的行为。 | +| out | out | 表示输出的 Tensor 元组。 | ### 转写示例 -#### some:控制 QR 分解的行为 +#### 功能一致 ```python -# 当进行完整的 QR 分解时 -# PyTorch 写法 -q, r = torch.qr(x, some=False) - -# Paddle 写法 -q, r = paddle.linalg.qr(x, mode='complete') - -#当进行减少的 QR 分解时 # PyTorch 写法 q, r = torch.qr(x, some=True) # Paddle 写法 -q, r = paddle.linalg.qr(x, mode='reduced') -``` - -#### out:指定输出 -```python -# PyTorch 写法 -torch.qr(x, out = (q, r) ) - -# Paddle 写法 -q, r = paddle.linalg.qr(x) +q, r = paddle.qr(x, some=True) ``` From 9aa942260e471c688b8219ab6f25a1ecbd66a5d7 Mon Sep 17 00:00:00 2001 From: zhouwei25 Date: Mon, 6 Jul 2026 10:45:17 +0000 Subject: [PATCH 3/5] [API Compatibility] clean up qr doc: remove PyTorch comparison, describe Paddle behavior only Co-Authored-By: Claude Opus 4.6 --- docs/api/paddle/linalg/qr_cn.rst | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/api/paddle/linalg/qr_cn.rst b/docs/api/paddle/linalg/qr_cn.rst index e274e713e7d..5a9b46a175e 100644 --- a/docs/api/paddle/linalg/qr_cn.rst +++ b/docs/api/paddle/linalg/qr_cn.rst @@ -5,7 +5,6 @@ qr .. py:function:: paddle.linalg.qr(x, mode="reduced", name=None, *, out=None) -**注意**:该 API 与 PyTorch 的行为存在差异(详见下方说明)。 计算一个或一批矩阵的正交三角分解,也称 QR 分解(暂不支持反向)。 @@ -25,8 +24,6 @@ qr 如果 ``mode = "reduced"``,则 :math:`Q` 形状为 ``[*, M, K]`` 和 :math:`R` 形状为 ``[*, K, N]``; 如果 ``mode = "complete"``,则 :math:`Q` 形状为 ``[*, M, M]`` 和 :math:`R` 形状为 ``[*, M, N]``; 如果 ``mode = "r"``,则**只返回**缩减的 :math:`R`,其形状为 ``[*, K, N]``。 - (与 PyTorch 不同:PyTorch 的 ``linalg.qr`` 在 ``mode='r'`` 时仍返回 ``(Q, R)`` 具名元组,其中 Q 为空张量; - Paddle 直接返回单个 Tensor R。) - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 - **out** (Tensor|tuple,可选) - 指定输出的张量。 当 ``mode = "r"`` 时,为一个 Tensor 用于存储 R; @@ -40,11 +37,6 @@ qr - Tensor Q,正交三角分解的 Q 正交矩阵。 - Tensor R,正交三角分解的 R 上三角矩阵。 - .. note:: - 与 PyTorch 不同,当 ``mode='r'`` 时,Paddle 直接返回 Tensor R, - 而非 ``(Q, R)`` 元组。如果需要与 PyTorch 代码完全兼容,建议使用 - ``mode='reduced'`` 并忽略 Q。 - 代码示例 :::::::::: From 9f980128104de6b8ec54e76cf65144100964251f Mon Sep 17 00:00:00 2001 From: zhouwei25 Date: Tue, 7 Jul 2026 03:43:44 +0000 Subject: [PATCH 4/5] [API Compatibility] update docs for Tensor.H/Tensor.mH 0-D support Co-Authored-By: Claude Opus 4.6 --- .../api_difference/composite_implement/torch.Tensor.H.md | 2 +- .../api_difference/composite_implement/torch.Tensor.mH.md | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md index d1fe2becfef..cdd2440b86f 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md @@ -5,7 +5,7 @@ torch.Tensor.H ``` Paddle 现已支持该 API,可直接使用。 -该 API 仅针对 2D Tensor。 +该 API 支持 0D 和 2D Tensor。对于 0D Tensor,返回自身。 ### 转写示例 ```python diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.mH.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.mH.md index be43094092f..d1b0cda3868 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.mH.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.mH.md @@ -4,15 +4,14 @@ torch.Tensor.mH ``` -Paddle 无此 API,需要组合实现。 -PyTorch 中等于 x.transpose(-2, -1).conj(),Paddle 中 transpose 参数 perm 为转换后的维度位置。 +Paddle 现已支持该 API,可直接使用。 +该 API 支持 0D 和多维 Tensor。对于 0D Tensor,返回自身。 ### 转写示例 ```python -# 假设 x 为 4D # PyTorch 写法 y = x.mH # Paddle 写法 -y = x.transpose(perm=[0, 1, 3, 2]).conj() +y = x.mH ``` From 0c520ce6f216f1f69af0c5ad102b5d5210d70cd1 Mon Sep 17 00:00:00 2001 From: zhouwei25 Date: Tue, 7 Jul 2026 09:46:17 +0000 Subject: [PATCH 5/5] fix docs --- docs/api/paddle/amp/GradScaler_cn.rst | 23 ++++++++++-- docs/api/paddle/clamp__cn.rst | 15 ++++++++ docs/api/paddle/clamp_max_cn.rst | 14 ++++---- docs/api/paddle/compat/Overview_cn.rst | 1 - docs/api/paddle/compat/nn/_pair_cn.rst | 23 ------------ docs/api/paddle/cross_cn.rst | 12 +++---- .../paddle/device/set_default_device_cn.rst | 5 ++- docs/api/paddle/expand_copy_cn.rst | 11 ++++-- docs/api/paddle/histc_cn.rst | 2 +- docs/api/paddle/hstack_cn.rst | 2 +- docs/api/paddle/linalg/cholesky_cn.rst | 7 ++-- docs/api/paddle/linalg/det_cn.rst | 15 +++++--- docs/api/paddle/linalg/eigh_cn.rst | 6 ++-- docs/api/paddle/linalg/qr_cn.rst | 14 ++++++-- docs/api/paddle/logdet_cn.rst | 7 ++-- docs/api/paddle/masked_fill__cn.rst | 6 +++- docs/api/paddle/masked_fill_cn.rst | 9 +++-- docs/api/paddle/moveaxis_cn.rst | 2 +- docs/api/paddle/nn/ELU_cn.rst | 4 +-- .../paddle/nn/functional/batch_norm_cn.rst | 24 +++++++------ docs/api/paddle/nn/functional/elu_cn.rst | 2 +- .../nn/functional/gumbel_softmax_cn.rst | 24 +++++++------ .../paddle/nn/functional/instance_norm_cn.rst | 18 +++++----- docs/api/paddle/nn/functional/prelu_cn.rst | 10 +++--- docs/api/paddle/nn/functional/rms_norm_cn.rst | 15 ++++---- docs/api/paddle/qr_cn.rst | 31 ++++++++++++++++ docs/api/paddle/real_cn.rst | 6 +++- docs/api/paddle/set_grad_enabled_cn.rst | 10 ++---- docs/api/paddle/tensordot_cn.rst | 6 +++- docs/api/paddle/vstack_cn.rst | 7 ++-- .../torch.Tensor.true_divide_.md | 7 ++-- .../args_name_diff/torch.hstack.md | 3 +- .../composite_implement/torch.Tensor.H.md | 7 ++-- .../composite_implement/torch.Tensor.mH.md | 7 ++-- .../composite_implement/torch.logdet.md | 4 +-- .../torch.Tensor.logical_and_.md | 3 -- .../torch_more_args/torch.clamp_max.md | 24 +++++++++---- .../torch_more_args/torch.linalg.cholesky.md | 19 +++++++--- .../torch_more_args/torch.linalg.cross.md | 22 ++++++++---- .../torch_more_args/torch.linalg.eigh.md | 18 +++++++--- .../torch_more_args/torch.linalg.qr.md | 35 ++++--------------- .../torch_more_args/torch.nn.ELU.md | 6 ++-- .../torch_more_args/torch.qr.md | 30 ---------------- 43 files changed, 282 insertions(+), 234 deletions(-) create mode 100644 docs/api/paddle/clamp__cn.rst delete mode 100644 docs/api/paddle/compat/nn/_pair_cn.rst create mode 100644 docs/api/paddle/qr_cn.rst delete mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.qr.md diff --git a/docs/api/paddle/amp/GradScaler_cn.rst b/docs/api/paddle/amp/GradScaler_cn.rst index 4bcb9bb2f17..bfde5a3a3e0 100644 --- a/docs/api/paddle/amp/GradScaler_cn.rst +++ b/docs/api/paddle/amp/GradScaler_cn.rst @@ -7,7 +7,7 @@ GradScaler -GradScaler 用于动态图模式下的"自动混合精度"的训练。它控制 loss 的缩放比例,有助于避免浮点数溢出的问题。这个类具有 ``scale()``、 ``unscale_()``、 ``step()``、 ``update()``、 ``minimize()`` 和参数的 ``get()/set()`` 等方法。 +GradScaler 用于动态图模式下的"自动混合精度"的训练。它控制 loss 的缩放比例,有助于避免浮点数溢出的问题。这个类具有 ``scale()``、 ``unscale_()``、 ``minimize()``、 ``step()``、 ``update()`` 和参数的 ``get()/set()`` 共十九个方法。 ``scale()`` 用于让 loss 乘上一个缩放的比例。 ``unscale_()`` 用于让 loss 除去一个缩放的比例。 @@ -96,10 +96,14 @@ step(optimizer) COPY-FROM: paddle.amp.GradScaler.step -update() +update(new_scale=None) ''''''''' -更新缩放比例。 +更新 loss scaling 比例。 + +**参数** + +- **new_scale** (float,可选) - 新的 loss scaling 因子。如果提供,loss scaling 因子将直接设置为 ``new_scale`` 并重置内部步数计数。默认值为 None。 **代码示例** @@ -301,3 +305,16 @@ load_state_dict(state_dict) **代码示例** COPY-FROM: paddle.amp.GradScaler.load_state_dict + +get_scale() +''''''''' + +返回当前的缩放因子,类型为 Python float。如果 loss scaling 未启用,则返回 0.0。 + +**返回** + +float,当前 loss scaling 因子,如果禁用则返回 0.0。 + +**代码示例** + +COPY-FROM: paddle.amp.GradScaler.get_scale diff --git a/docs/api/paddle/clamp__cn.rst b/docs/api/paddle/clamp__cn.rst new file mode 100644 index 00000000000..bdefb0cdec6 --- /dev/null +++ b/docs/api/paddle/clamp__cn.rst @@ -0,0 +1,15 @@ +.. _cn_api_paddle_clamp_: + +clamp\_ +------------------------------- + +.. py:function:: paddle.clamp_(x, min=None, max=None, name=None) + +``clip_`` 的别名,请参考 :ref:`cn_api_paddle_clip_`。 + +.. note:: + 别名支持:参数名 ``input`` 可替代 ``x``,如 ``clamp_(input=tensor_x)`` 等价于 ``clamp_(x=tensor_x)``。 + +更多关于 inplace 操作的介绍请参考 `3.1.3 原位(Inplace)操作和非原位操作的区别`_ 了解详情。 + +.. _3.1.3 原位(Inplace)操作和非原位操作的区别: https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/beginner/tensor_cn.html#id3 diff --git a/docs/api/paddle/clamp_max_cn.rst b/docs/api/paddle/clamp_max_cn.rst index 5e153435f85..2ffff083b7b 100644 --- a/docs/api/paddle/clamp_max_cn.rst +++ b/docs/api/paddle/clamp_max_cn.rst @@ -3,19 +3,17 @@ clamp_max ------------------------------- -.. py:function:: paddle.clamp_max(input, max=None, *, out=None) +.. py:function:: paddle.clamp_max(input, max, *, out=None) -该 API 将输入中的所有元素进行裁剪,使得输出元素不大于给定的最大值,具体公式如下: +将输入中的所有元素裁剪到区间 [min=None, max] 内。 -.. math:: - - Out = MIN(x, max) +该接口是 ``paddle.clip`` 的封装,仅设置上界。 参数 :::::::::::: - - **input** (Tensor) - 输入的 Tensor,数据类型为:float16、float32、float64、int32、int64。 - - **max** (float|int|Tensor,可选) - 裁剪的最大值,输入中大于该值的元素将由该元素代替。数据类型可以是 float32 或形状为 [] 的 0-D Tensor,默认值为 None。 + - **input** (Tensor) - 输入的 Tensor。 + - **max** (float|Tensor) - 裁剪的最大值。 关键字参数 :::::::::::: @@ -23,7 +21,7 @@ clamp_max 返回 :::::::::::: -输出 Tensor,与 ``input`` 维度相同。当 ``input`` 数据类型为 int32 或 int64 且 ``max`` 为 float 类型时,输出 Tensor 的数据类型为 float32,否则与输入 ``input`` 的数据类型相同。 +输出 Tensor,与 ``input`` 维度相同。 代码示例 :::::::::::: diff --git a/docs/api/paddle/compat/Overview_cn.rst b/docs/api/paddle/compat/Overview_cn.rst index 70b54b31a14..b084c0395b1 100644 --- a/docs/api/paddle/compat/Overview_cn.rst +++ b/docs/api/paddle/compat/Overview_cn.rst @@ -21,7 +21,6 @@ PyTorch 兼容函数 " :ref:`slogdet ` ", "slogdet 函数" " :ref:`sort ` ", "同时返回 values 及 indices 的排序" " :ref:`split ` ", "允许非整除块大小输入的 Tensor 轴向切分" - " :ref:`logical_and_ ` ", "Inplace 版本的逻辑与运算,保留输入 Tensor 数据类型" .. _about_compat_nn: diff --git a/docs/api/paddle/compat/nn/_pair_cn.rst b/docs/api/paddle/compat/nn/_pair_cn.rst deleted file mode 100644 index f8fe1004e03..00000000000 --- a/docs/api/paddle/compat/nn/_pair_cn.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. _cn_api_paddle_compat_nn__pair: - -_pair -------------------------------- - -.. py:function:: paddle.compat.nn._pair(x) - -用于将输入转换为包含 2 个元素的元组。当输入为单个整数时,返回包含两个相同整数的元组;当输入为列表或元组时,转换为元组并返回。 - -参数 -::::::::::: - - - **x** (int|list|tuple) - 输入值,可以是整数、包含 2 个元素的列表或元组。 - -返回 -::::::::::: - - tuple:包含 2 个元素的元组。 - -代码示例 -:::::::::::: - -COPY-FROM: paddle.compat.nn._pair diff --git a/docs/api/paddle/cross_cn.rst b/docs/api/paddle/cross_cn.rst index d6ff3de7411..7b393ade2c6 100644 --- a/docs/api/paddle/cross_cn.rst +++ b/docs/api/paddle/cross_cn.rst @@ -3,24 +3,20 @@ cross ------------------------------- -.. py:function:: paddle.cross(x, y, axis=-1, name=None, *, out=None) +.. py:function:: paddle.cross(x, y, axis=9, name=None) -计算 Tensor ``x`` 和 ``y`` 在 ``axis`` 维度上的向量积(叉积)。 +计算两个 Tensor 在 ``axis`` 维度上的向量积(叉积)。 -``x`` 和 ``y`` 必须有相同的形状,且指定的 ``axis`` 的长度必须为 3。如果未指定 ``axis``,默认选取第一个长度为 3 的 ``axis`` 。 +输入 Tensor 必须有相同的形状,且指定维度的长度必须为 3。如果未指定 ``axis``,默认选取第一个长度为 3 的维度。 参数 ::::::::: - **x** (Tensor) - 第一个输入 Tensor,数据类型为:float16、float32、float64、int32、int64、complex64、complex128。别名 ``input``。 - **y** (Tensor) - 第二个输入 Tensor,数据类型为:float16、float32、float64、int32、int64、complex64、complex128。别名 ``other``。 - - **axis** (int,可选) - 沿着此维进行向量积操作。别名 ``dim``。默认值是 -1,意思是选取第一个长度为 3 的 ``axis`` 。 + - **axis** (int,可选) - 沿着此维度进行向量积操作。默认值为 9,表示选取第一个长度为 3 的维度。别名 ``dim``。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 -关键字参数 -:::::::::::: - - **out** (Tensor,可选) - 输出 Tensor,若不为 ``None``,计算结果将保存在该 Tensor 中,默认值为 ``None``。 - 返回 ::::::::: 计算后的 Tensor,数据类型与输入 ``x`` 相同。 diff --git a/docs/api/paddle/device/set_default_device_cn.rst b/docs/api/paddle/device/set_default_device_cn.rst index d66771354f5..d075f57ced0 100644 --- a/docs/api/paddle/device/set_default_device_cn.rst +++ b/docs/api/paddle/device/set_default_device_cn.rst @@ -6,14 +6,13 @@ set_default_device .. py:function:: paddle.device.set_default_device(device=None) Paddle 支持在各种类型的设备上运行,包括 CPU、GPU、XPU、NPU 和 IPU。 -该函数可以设置 OP 运行的全局设备。 +该函数可以指定 OP 运行的全局设备。 参数 ::::::::: - **device** (str|Place|paddle.device|int|None,可选) - 此参数确定特定的运行设备。可以是 ``cpu``、``gpu``、``xpu``、``npu``、``gpu:x``、``xpu:x``、``npu:x`` 和 ``ipu``, - 其中 ``x`` 是 GPU、XPU 或 NPU 的索引。也可以是 ``paddle.device`` 对象或 int 类型的设备索引。如果为 ``None``,则重置为 CPU。 - 默认值为 None。 + 其中 ``x`` 是 GPU、XPU 或 NPU 的索引。也可以是 ``paddle.device`` 对象或 int 类型的设备索引。默认为 ``None``,表示当前设备。 返回 ::::::::: diff --git a/docs/api/paddle/expand_copy_cn.rst b/docs/api/paddle/expand_copy_cn.rst index b74d36f6797..aa3c96ab119 100644 --- a/docs/api/paddle/expand_copy_cn.rst +++ b/docs/api/paddle/expand_copy_cn.rst @@ -7,12 +7,17 @@ expand_copy 根据 ``shape`` 指定的形状扩展 ``x``,扩展后返回一个新的 Tensor,不会修改原 Tensor。 -这是 :ref:`cn_api_paddle_expand` 的非原位版本。 +这是 :ref:`cn_api_paddle_expand` 的非原位版本,始终返回新的 Tensor 而非视图。 + +.. note:: + 该接口有两个签名: + 1. ``paddle.expand_copy(x, shape, name=None)`` (Paddle 风格):根据广播语义返回扩展后的新 Tensor。 + 2. ``paddle.expand_copy(input, *size)`` (PyTorch 风格):通过可变长 size 参数返回扩展后的新 Tensor。 参数 ::::::::::: - - **x** (Tensor) - 输入的 Tensor,数据类型为:bool、float16、float32、float64、int32、int64、uint8、uint16、complex64 或 complex128。别名 ``input``。 - - **shape** (tuple|list|Tensor) - 给定输入 ``x`` 扩展后的形状。若 shape 为 list 或 tuple,其中的元素值应全为整数或 0-D 或 1-D Tensor(数据类型为 int32)。别名 ``size``。 + - **x** (Tensor) - 输入的 Tensor。别名 ``input``。 + - **shape** (tuple|list|Tensor) - 目标扩展形状。维度数必须大于或等于 ``x`` 的维度数。若 shape 为 list 或 tuple,其中的元素值应全为整数或 0-D 或 1-D Tensor(数据类型为 int32)。别名 ``size``。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 diff --git a/docs/api/paddle/histc_cn.rst b/docs/api/paddle/histc_cn.rst index 95cc8cdc54a..9c3ec213d8c 100644 --- a/docs/api/paddle/histc_cn.rst +++ b/docs/api/paddle/histc_cn.rst @@ -7,7 +7,7 @@ histc 计算 Tensor 的直方图。 -元素被分配到 min 和 max 之间的等宽区间中。如果 min 和 max 都为零,则使用数据的最小值和最大值。 +元素被分配到 min 和 max 之间的等宽区间中(包含边界)。如果 min 和 max 都为零,则使用数据的最小值和最大值。 参数 ::::::::: diff --git a/docs/api/paddle/hstack_cn.rst b/docs/api/paddle/hstack_cn.rst index ab962836851..dec1978a3e2 100644 --- a/docs/api/paddle/hstack_cn.rst +++ b/docs/api/paddle/hstack_cn.rst @@ -10,7 +10,7 @@ hstack 参数 :::::::::::: - - **x** (list[Tensor]|tuple[Tensor]) - 输入 ``x`` 可以是张量的 list 或 tuple, ``x`` 中张量的数据类型必须相同。支持的数据类型: ``float16`` 、 ``float32`` 、 ``float64`` 、 ``int32`` 、 ``int64`` 或 ``bfloat16`` 。别名 ``tensors``。 + - **x** (list[Tensor]|tuple[Tensor]) - 输入 ``x`` 可以是张量的 list 或 tuple, ``x`` 中张量的数据类型必须相同。支持的数据类型: ``float16`` 、 ``float32`` 、 ``float64`` 、 ``int8`` 、 ``int32`` 、 ``int64`` 或 ``bfloat16`` 。别名 ``tensors``。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 关键字参数 diff --git a/docs/api/paddle/linalg/cholesky_cn.rst b/docs/api/paddle/linalg/cholesky_cn.rst index f58b914e0cd..e08819a047a 100644 --- a/docs/api/paddle/linalg/cholesky_cn.rst +++ b/docs/api/paddle/linalg/cholesky_cn.rst @@ -5,12 +5,9 @@ cholesky .. py:function:: paddle.linalg.cholesky(x, upper=False, name=None, *, out=None) - - - 计算一个对称正定矩阵或一批对称正定矩阵的 Cholesky 分解。如果 ``upper`` 是 ``True``, -则分解形式为 :math:`A = U ^ {T} U`,返回的矩阵 U 是上三角矩阵。 -否则,分解形式为 :math:`A = LL ^ {T}`,并返回矩阵 :math:`L` 是下三角矩阵。 +则分解形式为 :math:`A = U^{T}U`,返回的矩阵 U 是上三角矩阵。 +否则,分解形式为 :math:`A = LL^{T}`,并返回矩阵 :math:`L` 是下三角矩阵。 参数 :::::::::::: diff --git a/docs/api/paddle/linalg/det_cn.rst b/docs/api/paddle/linalg/det_cn.rst index c88ce267b94..67fd75e40f8 100644 --- a/docs/api/paddle/linalg/det_cn.rst +++ b/docs/api/paddle/linalg/det_cn.rst @@ -3,19 +3,24 @@ det ------------------------------- -.. py:function:: paddle.linalg.det(x, *, out=None) -计算批量矩阵的行列式值。 +.. py:function:: paddle.linalg.det(x, name=None, *, out=None) + +计算一个或批量方阵的行列式值。 参数 :::::::::::: - - **x** (Tensor):输入一个或批量矩阵。``x`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64。别名 ``input``、 ``A``。 - - **out** (Tensor,可选):指定输出的存储结果的 Tensor,如果提供,返回值将是 ``out`` 本身。默认值为 ``None``。 + - **x** (Tensor):输入一个或批量方阵。``x`` 的形状应为 ``[*, n, n]``,其中 ``*`` 为零或更大的批次维度。别名 ``input``。 + - **name** (str|None,可选) - 该参数用于打印调试信息,具体用法请参见 :ref:`api_guide_Name`,默认值为 None。 + +关键字参数 +:::::::::::: + - **out** (Tensor,可选) - 指定输出的存储结果的 Tensor,如果提供,返回值将是 ``out`` 本身。默认值为 ``None``。 返回 :::::::::::: -Tensor,输出矩阵的行列式值 Shape 为 ``[*]`` 。 +Tensor,输出方阵的行列式值。Shape 为 ``[*]`` 。 代码示例 :::::::::: diff --git a/docs/api/paddle/linalg/eigh_cn.rst b/docs/api/paddle/linalg/eigh_cn.rst index 7d623053c86..5139e2cbded 100644 --- a/docs/api/paddle/linalg/eigh_cn.rst +++ b/docs/api/paddle/linalg/eigh_cn.rst @@ -20,8 +20,10 @@ eigh 返回 :::::::::::: - - Tensor out_value,输出矩阵的特征值,输出顺序按照从小到大进行排序。Shape 为 ``[*, M]`` 。 - - Tensor out_vector,输出矩阵的特征向量,与特征值一一对应,Shape 为 ``[*, M, M]`` 。 + 包含两项的元组: + + - **out_value** (Tensor):输出矩阵的特征值,输出顺序按照从小到大进行排序。Shape 为 ``[*, N]``,数据类型为 float32 和 float64。 + - **out_vector** (Tensor):输出矩阵的特征向量,与特征值一一对应,Shape 为 ``[*, N, N]``,数据类型为 float32、float64、complex64 和 complex128。 代码示例 :::::::::: diff --git a/docs/api/paddle/linalg/qr_cn.rst b/docs/api/paddle/linalg/qr_cn.rst index 5a9b46a175e..5a7cd3ed219 100644 --- a/docs/api/paddle/linalg/qr_cn.rst +++ b/docs/api/paddle/linalg/qr_cn.rst @@ -3,8 +3,14 @@ qr ------------------------------- -.. py:function:: paddle.linalg.qr(x, mode="reduced", name=None, *, out=None) +.. py:function:: paddle.linalg.qr(x, mode='reduced', name=None, *, out=None) +.. note:: + + 本 API 支持两种签名方式: + + 1. ``paddle.linalg.qr(x, mode='reduced', name=None, *, out=None)``(Paddle 风格):通过 ``mode`` 字符串参数控制 QR 分解。 + 2. ``paddle.linalg.qr(input, some=True, *, out=None)``(PyTorch 风格):通过 ``some`` 布尔参数控制 QR 分解。 计算一个或一批矩阵的正交三角分解,也称 QR 分解(暂不支持反向)。 @@ -15,16 +21,18 @@ qr 其中,:math:`Q` 是正交矩阵,:math:`R` 是上三角矩阵。 - 参数 :::::::::::: - - **x** (Tensor):输入进行正交三角分解的一个或一批方阵,类型为 Tensor。 ``x`` 的形状应为 ``[*, M, N]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32, float64。别名 ``input``, ``A``。 + - **x** (Tensor):输入进行正交三角分解的一个或一批方阵,类型为 Tensor。 ``x`` 的形状应为 ``[*, M, N]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64、complex64、complex128。别名 ``input``, ``A``。 - **mode** (str,可选):控制正交三角分解的行为,默认是 ``reduced``,假设 ``x`` 形状应为 ``[*, M, N]`` 和 ``K = min(M, N)``: 如果 ``mode = "reduced"``,则 :math:`Q` 形状为 ``[*, M, K]`` 和 :math:`R` 形状为 ``[*, K, N]``; 如果 ``mode = "complete"``,则 :math:`Q` 形状为 ``[*, M, M]`` 和 :math:`R` 形状为 ``[*, M, N]``; 如果 ``mode = "r"``,则**只返回**缩减的 :math:`R`,其形状为 ``[*, K, N]``。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +关键字参数 +:::::::::::: - **out** (Tensor|tuple,可选) - 指定输出的张量。 当 ``mode = "r"`` 时,为一个 Tensor 用于存储 R; 否则为一个 ``(Q, R)`` 张量元组,默认值为 None。 diff --git a/docs/api/paddle/logdet_cn.rst b/docs/api/paddle/logdet_cn.rst index 9c8da415645..c17bf1ef2ba 100644 --- a/docs/api/paddle/logdet_cn.rst +++ b/docs/api/paddle/logdet_cn.rst @@ -7,18 +7,19 @@ logdet 计算一个或一批方阵的行列式的自然对数。 -如果行列式值为正数,则返回行列式的自然对数;如果行列式值为负数或零,则返回 ``NaN``。 +对于行列式为负数的矩阵,返回 ``nan``。 +对于行列式为零的矩阵,返回 ``-inf``。 参数 :::::::::::: - - **input** (Tensor) - 输入一个或批量方阵。``input`` 的形状应为 ``[*, M, M]``,其中 ``*`` 为零或更大的批次维度,数据类型支持 float32、float64、complex64、complex128。 + - **input** (Tensor) - 输入一个或批量方阵。``input`` 的形状应为 ``[*, n, n]``,其中 ``*`` 为零或更大的批次维度。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: -Tensor,输出矩阵的行列式的自然对数值。 +Tensor:输出矩阵的行列式的自然对数值,Shape 为 ``[*]``。 代码示例 :::::::::::: diff --git a/docs/api/paddle/masked_fill__cn.rst b/docs/api/paddle/masked_fill__cn.rst index 1217c2e39c9..90a205f7464 100644 --- a/docs/api/paddle/masked_fill__cn.rst +++ b/docs/api/paddle/masked_fill__cn.rst @@ -3,9 +3,13 @@ masked_fill\_ ------------------------------- -.. py:function:: paddle.masked_fill_(x) +.. py:function:: paddle.masked_fill_(x, mask, value, name=None) + Inplace 版本的 :ref:`cn_api_paddle_masked_fill` API,对输入 x 采用 Inplace 策略。 +.. note:: + 别名支持:参数名 ``input`` 可替代 ``x``,如 ``masked_fill_(input=tensor_x, mask=tensor_mask, value=val)`` 等价于 ``masked_fill_(x=tensor_x, mask=tensor_mask, value=val)``。 + 更多关于 inplace 操作的介绍请参考 `3.1.3 原位(Inplace)操作和非原位操作的区别`_ 了解详情。 .. _3.1.3 原位(Inplace)操作和非原位操作的区别: https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/beginner/tensor_cn.html#id3 diff --git a/docs/api/paddle/masked_fill_cn.rst b/docs/api/paddle/masked_fill_cn.rst index 47351dfbe76..87aa6dfb1c3 100644 --- a/docs/api/paddle/masked_fill_cn.rst +++ b/docs/api/paddle/masked_fill_cn.rst @@ -5,8 +5,7 @@ masked_fill .. py:function:: paddle.masked_fill(x, mask, value, name=None) - -返回一个 1-D 的 Tensor,Tensor 的值是根据 ``mask`` 信息,将 ``value`` 中的值填充到 ``x`` 中 ``mask`` 对应为 ``True`` 的位置,``mask`` 的数据类型是 bool。 +在 mask 为 True 的位置用 value 填充 x 中的元素。mask 的形状必须与 x 的形状可广播。 下图展示了一个例子:假设我们有一个所有元素值为 1 的 3x3 矩阵 ``x`` 和一个相同尺寸的掩码矩阵 ``Mask``,``Value`` 值为 3。 @@ -18,13 +17,13 @@ masked_fill :::::::::::: - **x** (Tensor) - 输入 Tensor,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。别名 ``input``。 - - **mask** (Tensor) - 布尔张量,表示要填充的位置。mask 的数据类型必须为 bool。 - - **value** (Scalar or 0-D Tensor):用于填充目标张量的值,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。 + - **mask** (Tensor) - 布尔张量,表示要填充的位置。mask 的形状必须与 x 的形状可广播。mask 的数据类型必须为 bool。 + - **value** (Scalar or 0-D Tensor) - 用于填充目标张量的值,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: -返回一个根据 ``mask`` 将对应位置填充为 ``value`` 的 Tensor,数据类型与 ``x`` 相同。 +Tensor,与 ``x`` 具有相同形状和数据类型的 Tensor。 代码示例 :::::::::::: diff --git a/docs/api/paddle/moveaxis_cn.rst b/docs/api/paddle/moveaxis_cn.rst index fe9b7b306e6..7d2d1c28b37 100644 --- a/docs/api/paddle/moveaxis_cn.rst +++ b/docs/api/paddle/moveaxis_cn.rst @@ -5,7 +5,7 @@ moveaxis .. py:function:: paddle.moveaxis(x, source, destination, name=None) -将输入 Tensor ``x`` 的轴从 ``source`` 位置移动到 ``destination`` 位置,其他轴按原来顺序排布。同时根据新的 shape,重排 Tensor 中的数据。 +将输入 Tensor ``x`` 的轴从 ``source`` 位置移动到 ``destination`` 位置,其他未被移动的轴保持原有顺序。 下图展示了代码示例中的第一个操作 diff --git a/docs/api/paddle/nn/ELU_cn.rst b/docs/api/paddle/nn/ELU_cn.rst index b16eb9e008a..b0249e08f34 100644 --- a/docs/api/paddle/nn/ELU_cn.rst +++ b/docs/api/paddle/nn/ELU_cn.rst @@ -23,8 +23,8 @@ ELU 激活层(ELU Activation Operator) 参数 :::::::::: - **alpha** (float,可选) - ELU 的 alpha 值,默认值为 1.0。 - - **inplace** (bool,可选) - 是否在不更改变量的内存地址的情况下,直接修改变量的值,默认值为 False。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **inplace** (bool,可选) - 是否使用 inplace 操作。默认值为 False。 + - **name** (str|None,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 形状 :::::::::: diff --git a/docs/api/paddle/nn/functional/batch_norm_cn.rst b/docs/api/paddle/nn/functional/batch_norm_cn.rst index 1b3f7bea238..928ebbd9fd1 100644 --- a/docs/api/paddle/nn/functional/batch_norm_cn.rst +++ b/docs/api/paddle/nn/functional/batch_norm_cn.rst @@ -5,6 +5,8 @@ batch_norm .. py:function:: paddle.nn.functional.batch_norm(x, running_mean, running_var, weight=None, bias=None, training=False, momentum=0.9, epsilon=1e-05, data_format='NCHW', use_global_stats=None, name=None) +对输入数据进行批归一化(Batch Normalization),详见论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 。 + 推荐使用 nn.BatchNorm1D,nn.BatchNorm2D, nn.BatchNorm3D,由内部调用此方法。 详情见 :ref:`cn_api_paddle_nn_BatchNorm1D` 。 @@ -12,17 +14,17 @@ batch_norm 参数 :::::::::::: - - **x** (int) - 输入,数据类型为 float32, float64。 - - **running_mean** (Tensor) - 均值的 Tensor。 - - **running_var** (Tensor) - 方差的 Tensor。 - - **weight** (Tensor,可选) - 权重的 Tensor,默认为 None。 - - **bias** (Tensor,可选) - 偏置的 Tensor,默认为 None。 - - **training** (bool,可选) – 当该值为 True 时,表示为训练模式(train mode),即使用批数据计算并在训练期间跟踪全局均值和方差。为 False 时,表示使用推理模式(inference mode),即使用训练期间计算出的全局均值及方差计算。默认值为 False。 - - **momentum** (float,可选) - 此值用于计算 ``moving_mean`` 和 ``moving_var``。默认值:0.9。更新公式如上所示。 - - **epsilon** (float,可选) - 为了数值稳定加在分母上的值。默认值:1e-05。 - - **data_format** (str,可选) - 指定输入数据格式。数据格式可以为 ``"NC"``、``"NCL"``、``"NCHW"`` 或者 ``"NCDHW"``,其中 N 是批大小,C 是通道数,D 是特征深度,H 是特征高度,W 是特征宽度,L 是特征长度。默认值为 ``"NCHW"``。 - - **use_global_stats** (bool|None,可选) - 指示是否使用全局均值和方差。若设置为 False,则使用一个 mini-batch 的统计数据。若设置为 True 时,将使用全局统计数据。若设置为 None,则会在测试阶段使用全局统计数据,在训练阶段使用一个 mini-batch 的统计数据。默认值为 None。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **x** (Tensor) - 输入,数据类型为 float32, float64。 + - **running_mean** (Tensor) - 运行均值。 + - **running_var** (Tensor) - 运行方差。 + - **weight** (Tensor,可选) - batch_norm 权重的 Tensor,默认为 None。 + - **bias** (Tensor,可选) - batch_norm 偏置的 Tensor,默认为 None。 + - **training** (bool,可选) - 如果为 True,表示为训练模式,即使用批数据计算并在训练期间跟踪全局均值和方差。如果为 False,表示使用推理模式,即使用训练期间计算出的全局均值及方差计算。默认值为 False。 + - **momentum** (float,可选) - 此值用于计算 ``moving_mean`` 和 ``moving_var``。默认值:0.9。 + - **epsilon** (float,可选) - 为了数值稳定加在分母上的值。默认值:1e-5。 + - **data_format** (str,可选) - 指定输入数据格式,可以为 "NC"、"NCL"、"NCHW"、"NCDHW"、"NLC"、"NHWC" 或 "NDHWC",其中 N 是批大小,C 是通道数,D 是特征深度,H 是特征高度,W 是特征宽度,L 是特征长度。默认值为 "NCHW"。 + - **use_global_stats** (bool|None,可选) - 指示是否使用全局均值和方差。若设置为 False,则使用一个 mini-batch 的统计数据。若设置为 True,则使用全局统计数据。若设置为 None,则在测试阶段使用全局统计数据,在训练阶段使用一个 mini-batch 的统计数据。默认值为 None。 + - **name** (str|None,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 diff --git a/docs/api/paddle/nn/functional/elu_cn.rst b/docs/api/paddle/nn/functional/elu_cn.rst index e6bda48aee3..d1509f42f65 100644 --- a/docs/api/paddle/nn/functional/elu_cn.rst +++ b/docs/api/paddle/nn/functional/elu_cn.rst @@ -25,7 +25,7 @@ elu 激活层(ELU Activation Operator) :::::::::: - **x** (Tensor) - 输入的 ``Tensor``,数据类型为:float32、float64。别名 ``input``。 - **alpha** (float,可选) - elu 的 alpha 值,默认值为 1.0。 - - **inplace** (bool,可选) - 是否在不更改变量的内存地址的情况下,直接修改变量的值,默认值为 False。 + - **inplace** (bool,可选) - 是否使用 inplace 操作。默认值为 False。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 diff --git a/docs/api/paddle/nn/functional/gumbel_softmax_cn.rst b/docs/api/paddle/nn/functional/gumbel_softmax_cn.rst index 5291b92547b..26426cbd81c 100644 --- a/docs/api/paddle/nn/functional/gumbel_softmax_cn.rst +++ b/docs/api/paddle/nn/functional/gumbel_softmax_cn.rst @@ -2,9 +2,9 @@ gumbel_softmax ------------------------------- -.. py:function:: paddle.nn.functional.gumbel_softmax(x, temperature = 1.0, hard = False, axis = -1, name = None, eps = None) +.. py:function:: paddle.nn.functional.gumbel_softmax(x, temperature = 1.0, hard = False, axis = -1, name = None) -实现了按 Gumbel-Softmax 分布进行采样的功能,通过 hard 可选择是否离散化。记 temperature 为 ``t``,涉及到的等式如下: +该算子实现了从 Gumbel-Softmax 分布中采样,通过 hard 可选择是否离散化。记 temperature 为 ``t``,计算过程如下: 1. 产生 gumbel 噪声 @@ -18,25 +18,29 @@ gumbel_softmax v = [x_1 + G_1,...,x_n + G_n] -3. 计算 gumbel_softmax +3. 计算 gumbel_softmax 并生成样本 .. math:: gumbel\_softmax(v_i)=\frac{e^{v_i/t}}{\sum_{j=1}^n{e^{v_j/t}}},i=1,2,3...n +.. note:: + 此 API 有两种调用格式: + 1. ``paddle.nn.functional.gumbel_softmax(x, temperature=1.0, hard=False, axis=-1, name=None)`` (Paddle 风格):标准 Paddle API 签名。 + 2. ``paddle.nn.functional.gumbel_softmax(logits, tau=1.0, hard=False, eps=1e-10, dim=-1)`` (PyTorch 风格):兼容 PyTorch 的签名,其中 ``logits`` 是 ``x`` 的别名,``tau`` 是 ``temperature`` 的别名,``dim`` 是 ``axis`` 的别名,``eps`` 参数被接受但不产生任何作用(已废弃)。 + 参数 :::::::::: - - **x** (Tensor) - 一个 N-D Tensor,前 N-1 维用于独立分布 batch 的索引,最后一维表示每个类别的概率,dtype 类型为 float16,float,double。 - - **temperature** (float,可选) - 大于 0 的标量。默认值:1.0。 - - **hard** (bool,可选) - 如果是 True,返回离散的 one-hot 向量。如果是 False,返回软样本。默认值:False。 - - **axis** (int,可选) - 按照维度 axis 计算 softmax。默认值:-1。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 - - **eps** (float,可选) - 此参数已被废弃,不产生任何作用。默认值为 None。 + - **x** (Tensor) - 一个 N-D Tensor,前 N-1 维用于独立分布 batch 的索引,最后一维表示每个类别的概率向量,dtype 类型为 float16、float32、float64。别名 ``logits``。 + - **temperature** (float,可选) - 非负标量温度值。默认值:1.0。别名 ``tau``。 + - **hard** (bool,可选) - 如果为 True,返回的样本将被离散化为 one-hot 向量,但在自动求导时仍按软样本进行微分。如果为 False,返回软样本。默认值:False。 + - **axis** (int,可选) - 沿着该维度计算 softmax。默认值:-1。别名 ``dim``。 + - **name** (str|None,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::: - 与 ``x`` 形状相同的符合 gumbel-softmax 分布的 ``Tensor``。如果 ``hard=True``,则返回的样本将是 one-hot。如果 ``hard=False``,则返回的向量将是各维度加起来等于 1 的概率。 + 与 ``x`` 形状相同的从 Gumbel-Softmax 分布采样的 ``Tensor``。如果 ``hard=True``,则返回的样本将是 one-hot 向量;如果 ``hard=False``,则返回的向量将是沿 ``axis`` 维度之和为 1 的概率分布。 代码示例 :::::::::: diff --git a/docs/api/paddle/nn/functional/instance_norm_cn.rst b/docs/api/paddle/nn/functional/instance_norm_cn.rst index b54f266378f..37cb01b0bab 100644 --- a/docs/api/paddle/nn/functional/instance_norm_cn.rst +++ b/docs/api/paddle/nn/functional/instance_norm_cn.rst @@ -16,15 +16,15 @@ instance_norm :::::::::::: - **x** (Tensor) - 输入,数据类型为 float32, float64。别名 ``input``。 - - **running_mean** (Tensor,可选) - 均值的 Tensor。过时(已被删除,无法使用) - - **running_var** (Tensor,可选) - 方差的 Tensor。过时(已被删除,无法使用) - - **weight** (Tensor,可选) - 权重的 Tensor。默认值:None. 如果 weight 为 None 则 weight 被初始化为全 1 的 Tensor. - - **bias** (Tensor,可选) - 偏置的 Tensor。默认值:None. 如果 bias 为 None 则 bias 被初始化为值等于 0 的 Tensor. - - **use_input_stats** (bool,可选) - 默认是 True。过时(已被删除,无法使用) - - **momentum** (float,可选) - 此值用于计算 ``moving_mean`` 和 ``moving_var``。默认值:0.9。更新公式如上所示。 - - **eps** (float,可选) - 为了数值稳定加在分母上的值。默认值:1e-05。 - - **data_format** (string,可选) - 指定输入数据格式,数据格式可以为“NC", "NCL", "NCHW" 或者"NCDHW"。默认值:"NCHW"。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **running_mean** (Tensor,可选) - 运行均值。默认值:None。过时(已被删除,无法使用) + - **running_var** (Tensor,可选) - 运行方差。默认值:None。过时(已被删除,无法使用) + - **weight** (Tensor,可选) - instance_norm 权重的 Tensor。默认值:None。如果 weight 为 None 则 weight 被初始化为全 1 的 Tensor。 + - **bias** (Tensor,可选) - instance_norm 偏置的 Tensor。默认值:None。如果 bias 为 None 则 bias 被初始化为值等于 0 的 Tensor。 + - **eps** (float,可选) - 为了数值稳定加在分母上的值。默认值:1e-5。 + - **momentum** (float,可选) - 此值用于计算 ``moving_mean`` 和 ``moving_var``。默认值:0.9。 + - **use_input_stats** (bool,可选) - 默认值是 True。过时(已被删除,无法使用) + - **data_format** (str,可选) - 指定输入数据格式,数据格式可以为 "NC", "NCL", "NCHW" 或者 "NCDHW"。默认值:"NCHW"。 + - **name** (str|None,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: diff --git a/docs/api/paddle/nn/functional/prelu_cn.rst b/docs/api/paddle/nn/functional/prelu_cn.rst index 384281cd6f9..78133acb7ca 100644 --- a/docs/api/paddle/nn/functional/prelu_cn.rst +++ b/docs/api/paddle/nn/functional/prelu_cn.rst @@ -5,7 +5,7 @@ prelu .. py:function:: paddle.nn.functional.prelu(x, weight, data_format="NCHW", name=None) -prelu 激活层(PRelu Activation Operator)。计算公式如下: +prelu 激活。计算公式如下: .. math:: @@ -16,12 +16,12 @@ prelu 激活层(PRelu Activation Operator)。计算公式如下: 参数 :::::::::: - **x** (Tensor) - 输入的 ``Tensor``,数据类型为:float32、float64。别名 ``input``。 - - **weight** (Tensor) - 可训练参数,数据类型同``x`` 一致,形状支持:[]、[1] 或者 [in],其中 ``in`` 为输入的通道数。 - - **data_format** (str,可选) – 指定输入的数据格式,输出的数据格式将与输入保持一致,可以是 "NC", "NCL", "NCHW", "NCDHW", "NLC", "NHWC" 或者 "NDHWC"。默认值:"NCHW"。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **weight** (Tensor) - 可训练参数,数据类型同 ``x`` 一致,形状支持:[]、[1] 或者 [in],其中 ``in`` 为输入 ``x`` 的通道数。 + - **name** (str|None,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **data_format** (str,可选) - 指定输入的数据格式,可以是 "NC", "NCL", "NCHW", "NCDHW", "NLC", "NHWC" 或 "NDHWC"。默认值:"NCHW"。 返回 -:::::::::: +::::::::: ``Tensor``,数据类型和形状同 ``x`` 一致。 代码示例 diff --git a/docs/api/paddle/nn/functional/rms_norm_cn.rst b/docs/api/paddle/nn/functional/rms_norm_cn.rst index e6b094395b1..8320adcff87 100644 --- a/docs/api/paddle/nn/functional/rms_norm_cn.rst +++ b/docs/api/paddle/nn/functional/rms_norm_cn.rst @@ -5,24 +5,21 @@ rms_norm .. py:function:: paddle.nn.functional.rms_norm(x, normalized_shape, weight=None, epsilon=1e-05, name=None) -推荐使用 nn.LayerNorm。 - -详情见 :ref:`cn_api_paddle_nn_LayerNorm` 。 - +对输入 Tensor 的最后一维应用 RMS Layer Normalization,使用 CUDA 实现。 参数 :::::::::::: - - **x** (int) - 输入,数据类型为 bfloat16 、 float16 、 float32 或 float64。 - - **normalized_shape** (list|tuple) - 期望的输入是 :math:`[*, normalized_shape[0], normalized_shape[1], ..., normalized_shape[-1]]`,如果是一个整数,会作用在最后一个维度。 - - **weight** (Tensor,可选) - 权重的 Tensor,默认为 None。 - - **eps** (float,可选) - 为了数值稳定加在分母上的值。默认值:1e-05。 + - **x** (Tensor) - 输入 Tensor,形状为 [rows, cols] 或更高维(会被展平为 2 维),数据类型为 bfloat16、float16、float32 或 float64。 + - **normalized_shape** (list|tuple) - 期望输入的形状 :math:`[*, normalized_shape[0], normalized_shape[1], ..., normalized_shape[-1]]`。如果是一个整数,会对最后一维进行归一化,该维度的大小需为指定值。 + - **weight** (Tensor,可选) - rms_norm 权重的 Tensor,默认为 None。 + - **epsilon** (float|None,可选) - 为了数值稳定加在分母上的小值。如果为 None,则使用计算类型的机器精度:``float64`` 输入使用 ``np.finfo(np.float64).eps``(双精度),其他所有类型使用 ``np.finfo(np.float32).eps``(单精度)。默认值:None。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: -无 + out (Tensor) - 与输入形状相同的归一化 Tensor。 代码示例 :::::::::::: diff --git a/docs/api/paddle/qr_cn.rst b/docs/api/paddle/qr_cn.rst new file mode 100644 index 00000000000..cef3336d8fc --- /dev/null +++ b/docs/api/paddle/qr_cn.rst @@ -0,0 +1,31 @@ +.. _cn_api_paddle_qr: + +qr +------------------------------- + +.. py:function:: paddle.qr(input, some=True, *, out=None) + +计算一个或一批矩阵的 QR 分解。 + +该 API 是 ``paddle.linalg.qr`` 的封装,并提供 ``some`` 参数来控制 QR 分解的返回形式。 + +参数 +:::::::::::: + + - **input** (Tensor) - 输入 Tensor,形状应为 ``[*, M, N]``,其中 ``*`` 为零或更大的批次维度。 + - **some** (bool,可选) - 控制 QR 分解的行为。若为 ``True``(默认),返回 reduced 的 Q 和 R 矩阵, + 即 Q 的形状为 ``[*, M, K]``,R 的形状为 ``[*, K, N]``,其中 ``K = min(M, N)``。 + 若为 ``False``,返回 complete 的 Q 和 R 矩阵,即 Q 的形状为 ``[*, M, M]``,R 的形状为 ``[*, M, N]`` + +关键字参数 +:::::::::::: + - **out** (tuple[Tensor, Tensor],可选) - 输出 (Q, R) 的元组。默认值为 None。 + +返回 +:::::::::::: +tuple[Tensor, Tensor],QR 分解后的 (Q, R) 元组。 + +代码示例 +:::::::::::: + +COPY-FROM: paddle.qr diff --git a/docs/api/paddle/real_cn.rst b/docs/api/paddle/real_cn.rst index 5c22ad48175..df4f2c3fa94 100644 --- a/docs/api/paddle/real_cn.rst +++ b/docs/api/paddle/real_cn.rst @@ -3,7 +3,7 @@ real ------ -.. py:function:: paddle.real(x, name=None) +.. py:function:: paddle.real(x, name=None, *, out=None) 返回一个包含输入复数 Tensor 的实部数值的新 Tensor。 @@ -13,6 +13,10 @@ real - **x** (Tensor) - 输入 Tensor,其数据类型可以为 complex64 或 complex128。别名 ``input``。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 +关键字参数 +:::::::::::: + - **out** (Tensor,可选) - 输出 Tensor,默认值为 None。 + 返回 :::::::::::: Tensor,包含原复数 Tensor 的实部数值。 diff --git a/docs/api/paddle/set_grad_enabled_cn.rst b/docs/api/paddle/set_grad_enabled_cn.rst index fb845df776b..be96064b23c 100644 --- a/docs/api/paddle/set_grad_enabled_cn.rst +++ b/docs/api/paddle/set_grad_enabled_cn.rst @@ -5,19 +5,15 @@ set_grad_enabled .. py:function:: paddle.set_grad_enabled(mode) - -创建启用或禁用动态图梯度计算的上下文。 - +创建一个启用或禁用动态图梯度计算的上下文。 参数 ::::::::: - - **mode** (bool) - 启用(True)或禁用(False)动态图梯度计算。 - + - **mode** (bool) - 启用(True)或禁用(False)梯度计算。 返回 ::::::::: -None - +无 代码示例 ::::::::: diff --git a/docs/api/paddle/tensordot_cn.rst b/docs/api/paddle/tensordot_cn.rst index 5ebf3576197..2fba030f78b 100644 --- a/docs/api/paddle/tensordot_cn.rst +++ b/docs/api/paddle/tensordot_cn.rst @@ -3,7 +3,7 @@ tensordot ------------------------------- -.. py:function:: paddle.tensordot(x, y, axes=2, name=None) +.. py:function:: paddle.tensordot(x, y, axes=2, name=None, *, out=None) Tensor 缩并运算(Tensor Contraction),即沿着 axes 给定的多个轴对两个 Tensor 对应元素的乘积进行加和操作。 @@ -33,6 +33,10 @@ shape = [2,2,3]的 ``res`` 张量为 a,b 两个张量沿着 a 张量的最后一 4. ``axes`` 可以是一个 Tensor,这种情况下该 Tensor 会被转换成 list,然后应用前述规则确定做缩并运算的轴。请注意,输入 Tensor 类型的 ``axes`` 只在动态图模式下可用。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 +关键字参数 +:::::::::::: + - **out** (Tensor,可选) - 输出 Tensor。默认值为 None。 + 返回 :::::::::::: 一个 ``Tensor``,表示 Tensor 缩并的结果,数据类型与 ``x`` 和 ``y`` 相同。一般情况下,有 :math:`output.ndim = x.ndim + y.ndim - 2 \times n_{axes}`,其中 :math:`n_{axes}` 表示做 Tensor 缩并的轴数量。 diff --git a/docs/api/paddle/vstack_cn.rst b/docs/api/paddle/vstack_cn.rst index cdc264e9688..b1237711138 100644 --- a/docs/api/paddle/vstack_cn.rst +++ b/docs/api/paddle/vstack_cn.rst @@ -10,9 +10,12 @@ vstack 参数 :::::::::::: - - **x** (list[Tensor]|tuple[Tensor]) - 输入 ``x`` 可以是张量的 list 或 tuple, ``x`` 中张量的数据类型必须相同。支持的数据类型: ``float16`` 、 ``float32`` 、 ``float64`` 、 ``int32`` 、 ``int64`` 或 ``bfloat16`` 。 + - **x** (list[Tensor]|tuple[Tensor]) - 输入 ``x`` 可以是张量的 list 或 tuple, ``x`` 中张量的数据类型必须相同。支持的数据类型: ``float16`` 、 ``float32`` 、 ``float64`` 、 ``int8`` 、 ``int32`` 、 ``int64`` 或 ``bfloat16`` 。别名 ``tensors``。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 - - **out** (Tensor,可选) - 指定输出的存储结果的 Tensor,如果提供,返回值将是 ``out`` 本身。默认值为 ``None``。 + +关键字参数 +:::::::::::: + - **out** (Tensor,可选) - 输出 Tensor,若不为 ``None``,计算结果将保存在该 Tensor 中,默认值为 ``None``。 返回 :::::::::::: diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.Tensor.true_divide_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.Tensor.true_divide_.md index a98b75a91e4..af45e617ed3 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.Tensor.true_divide_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.Tensor.true_divide_.md @@ -4,16 +4,15 @@ torch.Tensor.true_divide_(other) ``` -### [paddle.Tensor.true\_divide\_]() +### [paddle.Tensor.divide_]() ```python -paddle.Tensor.true_divide_(other) +paddle.Tensor.divide_(y) ``` -两者功能一致,可直接使用。 两者功能一致且参数用法一致,仅参数名不一致,具体如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | -------- | ------------ | -------------------------------- | -| other | other | 表示输入的 Tensor。 | +| other | y | 表示输入的 Tensor,仅参数名不一致。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.hstack.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.hstack.md index 6d603c3c90c..b2a41d312cf 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.hstack.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/args_name_diff/torch.hstack.md @@ -6,7 +6,7 @@ torch.hstack(tensors, *, out=None) ### [paddle.hstack](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/hstack_cn.html#paddle.hstack) ```python -paddle.hstack(x, name=None, *, out=None) +paddle.hstack(x, name=None) ``` 其中 Paddle 相比 PyTorch 仅参数名不一致,具体如下: @@ -16,4 +16,3 @@ paddle.hstack(x, name=None, *, out=None) | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ | ------------------------------------------------------ | | tensors | x | 表示输入的 Tensor ,仅参数名不一致。 | -| out | out | 表示输出的 Tensor。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md index cdd2440b86f..9294eb72970 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.H.md @@ -4,8 +4,9 @@ torch.Tensor.H ``` -Paddle 现已支持该 API,可直接使用。 -该 API 支持 0D 和 2D Tensor。对于 0D Tensor,返回自身。 +Paddle 无此 API,需要组合实现。 +PyTorch 中等于 x.transpose(0, 1).conj(),Paddle 中 transpose 参数 perm 为转换后的维度位置。 +该 API 仅针对 2D。 ### 转写示例 ```python @@ -13,5 +14,5 @@ Paddle 现已支持该 API,可直接使用。 y = x.H # Paddle 写法 -y = x.H +y = x.transpose(perm=[1, 0]).conj() ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.mH.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.mH.md index d1b0cda3868..be43094092f 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.mH.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.Tensor.mH.md @@ -4,14 +4,15 @@ torch.Tensor.mH ``` -Paddle 现已支持该 API,可直接使用。 -该 API 支持 0D 和多维 Tensor。对于 0D Tensor,返回自身。 +Paddle 无此 API,需要组合实现。 +PyTorch 中等于 x.transpose(-2, -1).conj(),Paddle 中 transpose 参数 perm 为转换后的维度位置。 ### 转写示例 ```python +# 假设 x 为 4D # PyTorch 写法 y = x.mH # Paddle 写法 -y = x.mH +y = x.transpose(perm=[0, 1, 3, 2]).conj() ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.logdet.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.logdet.md index 8e1ca40afa4..83922409ec9 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.logdet.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/composite_implement/torch.logdet.md @@ -3,7 +3,7 @@ ```python torch.logdet(input) ``` -Paddle 现已支持该 API,可直接使用。 +Paddle 无此 API,需要组合实现。 ### 转写示例 ```python @@ -11,5 +11,5 @@ Paddle 现已支持该 API,可直接使用。 y = torch.logdet(input) # Paddle 写法 -y = paddle.logdet(input) +y = paddle.log(paddle.linalg.det(input)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/output_args_type_diff/torch.Tensor.logical_and_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/output_args_type_diff/torch.Tensor.logical_and_.md index de9cff18382..4b1d22e15ce 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/output_args_type_diff/torch.Tensor.logical_and_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/output_args_type_diff/torch.Tensor.logical_and_.md @@ -31,7 +31,4 @@ x.logical_and_(tensor_y) # Paddle 写法 _x_dtype_ = x.dtype x.logical_and_(tensor_y).cast(_x_dtype_) - -# 也可使用 Paddle 的兼容 API -paddle.compat.logical_and_(x, y) # 自动处理返回类型 ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.clamp_max.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.clamp_max.md index a23fa6953f5..fbd64e23ec6 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.clamp_max.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.clamp_max.md @@ -8,19 +8,31 @@ torch.clamp_max(input, out=None) ``` -### [paddle.clamp_max](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/clamp_max_cn.html#paddle.clamp_max) +### [paddle.clip](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/clip_cn.html#paddle.clip) ```python -paddle.clamp_max(x, +paddle.clip(x, + min=None, max=None, - *, - out=None) + name=None) ``` -两者功能一致,PyTorch 相比 Paddle 支持更多其他参数,具体如下: +PyTorch 相比 Paddle 支持更多其他参数,具体如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ | ------------------------------------------------------ | | input | x | 表示输入的 Tensor ,仅参数名不一致。 | +| - | min | 表示裁剪的最小值。PyTorch 无此参数, Paddle 保持默认即可。 | | max | max | 表示裁剪的最大值。 | -| out | out | 表示输出的 Tensor。 | +| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 | + + +### 转写示例 +#### out:指定输出 +```python +# PyTorch 写法 +torch.clamp_max(input, max=0.5, out=y) + +# Paddle 写法 +paddle.assign(paddle.clip(input, max=0.5), y) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cholesky.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cholesky.md index 1dbee54faca..f31da904b59 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cholesky.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cholesky.md @@ -6,15 +6,26 @@ torch.linalg.cholesky(input, *, upper=False, out=None) ### [paddle.linalg.cholesky](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/cholesky_cn.html#paddle.linalg.cholesky) ```python -paddle.linalg.cholesky(x, upper=False, name=None, *, out=None) +paddle.linalg.cholesky(x, upper=False, name=None) ``` -两者功能一致。 +PyTorch 相比 Paddle 支持更多其他参数,具体如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------- | ------- | ------- | -| input | x | 表示输入参数为多维 Tensor,它的维度应该为 [*, M, N],其中*为零或更大的批次尺寸,并且最里面的两个维度上的矩阵都应为对称的正定矩阵,仅参数名不一致。 别名 ``input``。 | +| input | x | 表示输入参数为多维 Tensor,它的维度应该为 [*, M, N],其中*为零或更大的批次尺寸,并且最里面的两个维度上的矩阵都应为对称的正定矩阵,仅参数名不一致。 | | upper | upper | 表示是否返回上三角矩阵或下三角矩阵。 | -| out | out | 表示输出的 Tensor。 | +| out | - | 表示输出的 Tensor ,Paddle 无此参数,需要转写。 | + +### 转写示例 +#### out: 输出的 Tensor +```python +# PyTorch 写法 +torch.linalg.cholesky(x, upper=False, out=output) + + +# Paddle 写法 +paddle.assign(paddle.linalg.cholesky(x, upper=False),output) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cross.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cross.md index 4d0a53013b0..1951b76f63f 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cross.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.cross.md @@ -6,16 +6,26 @@ torch.linalg.cross(input, other, *, dim=- 1, out=None) ### [paddle.cross](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/cross_cn.html#paddle.cross) ```python -paddle.cross(x, y, axis=-1, name=None, *, out=None) +paddle.cross(x, y, axis=None, name=None) ``` -两者功能一致。 +PyTorch 相比 Paddle 支持更多其他参数,具体如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ----------------------------------- | ------------ | ----------------------------------------------------------------------- | -| input | x | 表示输入的 Tensor ,仅参数名不一致。 别名 ``input``。 | -| other | y | 表示输入的 Tensor ,仅参数名不一致。 别名 ``other``。 | -| dim | axis | 表示进行运算的维度。别名 ``dim``。 | -| out | out | 表示输出的 Tensor。 | +| input | x | 表示输入的 Tensor ,仅参数名不一致。 | +| other | y | 表示输入的 Tensor ,仅参数名不一致。 | +| dim | axis | 表示进行运算的维度,参数默认值不一致。PyTorch 默认为`-1`,Paddle 默认为 `None`。 | +| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 | + +### 转写示例 +#### out:指定输出 +```python +# PyTorch 写法 +torch.linalg.cross(input, other, dim=1, out=y) + +# Paddle 写法 +paddle.assign(paddle.cross(input, other, axis=1) , y) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.eigh.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.eigh.md index 1eb341b2af5..ba6b567831e 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.eigh.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.eigh.md @@ -6,15 +6,25 @@ torch.linalg.eigh(input, UPLO='L', *, out=None) ### [paddle.linalg.eigh](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/eigh_cn.html#paddle.linalg.eigh) ```python -paddle.linalg.eigh(x, UPLO='L', name=None, *, out=None) +paddle.linalg.eigh(x, UPLO='L', name=None) ``` -两者功能一致。 +PyTorch 相比 Paddle 支持更多其他参数,具体如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------- | ------------ | ------------------------------------------------ | -| input | x | 输入 Tensor,仅参数名不一致。 别名 ``input``。 | +| input | x | 输入 Tensor,仅参数名不一致。 | | UPLO | UPLO | 表示计算上三角或者下三角矩阵。 | -| out | out | 表示输出的 Tensor 元组。 | +| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 | + +### 转写示例 +#### out 参数:输出的 Tensor +```python +# PyTorch 写法: +torch.linalg.eigh(x, out=y) + +# Paddle 写法: +paddle.assign(paddle.linalg.eigh(x), y) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.qr.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.qr.md index 572e2c7c882..33f52bec59e 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.qr.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.linalg.qr.md @@ -6,10 +6,10 @@ torch.linalg.qr(A, mode='reduced', *, out=None) ### [paddle.linalg.qr](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/qr_cn.html#paddle.linalg.qr) ```python -paddle.linalg.qr(x, mode='reduced', name=None, *, out=None) +paddle.linalg.qr(x, mode='reduced', name=None) ``` -两者功能一致,参数名和返回值有差异,具体如下: +PyTorch 相比 Paddle 支持更多其他参数,具体如下: ### 参数映射 @@ -17,37 +17,14 @@ paddle.linalg.qr(x, mode='reduced', name=None, *, out=None) | ------- | ------------ | -------------------------------------------------- | | A | x | 输入 Tensor,仅参数名不一致。 | | mode | mode | 控制正交三角分解的行为。 | -| out | out | 输出的 Tensor 元组,Paddle 已支持此参数。 | - -### 返回值差异 - -`mode='r'` 时,两者返回值不同: -- **PyTorch**:返回 `(Q, R)` 具名元组,Q 为空张量。 -- **Paddle**:直接返回单个 Tensor **R**(不包含 Q)。 - -因此,对 ``mode='r'`` 的返回值需注意解包方式。 +| out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 | ### 转写示例 -#### mode='r' 的返回值 +#### out 参数:输出的 Tensor ```python # PyTorch 写法: -r = torch.linalg.qr(x, mode='r') # 返回 (Q, R) 元组, R 在索引 1 +torch.linalg.qr(x, out=y) # Paddle 写法: -r = paddle.linalg.qr(x, mode='r') # 直接返回 Tensor R -``` - -#### out 参数:输出的 Tensor -```python -# PyTorch 写法 (mode='reduced'): -torch.linalg.qr(x, out=(q, r)) - -# Paddle 写法 (mode='reduced'): -paddle.linalg.qr(x, out=(q, r)) - -# PyTorch 写法 (mode='r',out 为 (Q, R) 元组): -torch.linalg.qr(x, mode='r', out=(q, r)) - -# Paddle 写法 (mode='r',out 为单个 Tensor): -paddle.linalg.qr(x, mode='r', out=r) +paddle.assign(paddle.linalg.qr(x), y) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.ELU.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.ELU.md index 7d1fb4c6869..6b2cbe52706 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.ELU.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.nn.ELU.md @@ -8,15 +8,13 @@ torch.nn.ELU(alpha=1.0, ### [paddle.nn.ELU](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/nn/ELU_cn.html#paddle.nn.ELU) ```python paddle.nn.ELU(alpha=1.0, - inplace=False, name=None) ``` -两者功能一致。 - +PyTorch 相比 Paddle 支持更多其他参数,具体如下: ### 参数映射 | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ | ------------------------------------------------------ | | alpha | alpha | 表示公式中的超参数。 | -| inplace | inplace | 在不更改变量的内存地址的情况下,直接修改变量的值,默认值为 False。 | +| inplace | - | 在不更改变量的内存地址的情况下,直接修改变量的值,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.qr.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.qr.md deleted file mode 100644 index fd31cc51b1c..00000000000 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.qr.md +++ /dev/null @@ -1,30 +0,0 @@ -## [ torch 参数更多 ]torch.qr -### [torch.qr](https://docs.pytorch.org/docs/stable/generated/torch.qr.html#torch.qr) -```python -torch.qr(input, some=True, *, out=None) -``` - -### [paddle.qr](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/qr_cn.html) -```python -paddle.qr(input, some=True, *, out=None) -``` - -两者功能一致,参数映射如下: - -### 参数映射 - -| PyTorch | PaddlePaddle | 备注 | -| ------------- | ------------ | ------------------------------------------------------ | -| input | input | 表示输入 Tensor。 | -| some | some | 表示 QR 分解的行为。 | -| out | out | 表示输出的 Tensor 元组。 | - -### 转写示例 -#### 功能一致 -```python -# PyTorch 写法 -q, r = torch.qr(x, some=True) - -# Paddle 写法 -q, r = paddle.qr(x, some=True) -```