From 4b204b1f13b809d5b7e62a25376f4ac1b65d1a61 Mon Sep 17 00:00:00 2001 From: yangguohao <1901212980@pku.edu.cn> Date: Wed, 20 Dec 2023 02:40:30 +0800 Subject: [PATCH 1/3] add masked_scatter docs --- docs/api/paddle/Overview_cn.rst | 2 ++ docs/api/paddle/Tensor_cn.rst | 13 +++++++++ docs/api/paddle/masked_scatter__cn.rst | 11 ++++++++ docs/api/paddle/masked_scatter_cn.rst | 28 +++++++++++++++++++ .../Tensor/torch.Tensor.masked_scatter.md | 22 +++++++++++++++ .../Tensor/torch.Tensor.masked_scatter_.md | 22 +++++++++++++++ .../pytorch_api_mapping_cn.md | 4 ++- 7 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 docs/api/paddle/masked_scatter__cn.rst create mode 100644 docs/api/paddle/masked_scatter_cn.rst create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.masked_scatter.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.masked_scatter_.md diff --git a/docs/api/paddle/Overview_cn.rst b/docs/api/paddle/Overview_cn.rst index 3a719ca655d..2b0efe4b009 100755 --- a/docs/api/paddle/Overview_cn.rst +++ b/docs/api/paddle/Overview_cn.rst @@ -189,6 +189,7 @@ tensor 数学操作原位(inplace)版本 " :ref:`paddle.hypot_ ` ", "Inplace 版本的 hypot API,对输入 x 采用 Inplace 策略" " :ref:`paddle.multigammaln_ ` ", "Inplace 版本的 multigammaln API,对输入 x 采用 Inplace 策略" " :ref:`paddle.masked_fill_ ` ", "Inplace 版本的 masked_fill API,对输入 x 采用 Inplace 策略" + " :ref:`paddle.masked_scatter_ ` ", "Inplace 版本的 masked_scatter API,对输入 x 采用 Inplace 策略" " :ref:`paddle.index_fill_ ` ", "Inplace 版本的 index_fill API,对输入 x 采用 Inplace 策略" .. _tensor_logic: @@ -401,6 +402,7 @@ tensor 元素操作相关(如:转置,reshape 等) " :ref:`paddle.view_as ` ", "使用 other 的 shape,返回 x 的一个 view Tensor" " :ref:`paddle.unfold ` ", "返回 x 的一个 view Tensor。以滑动窗口式提取 x 的值" " :ref:`paddle.masked_fill ` ", "根据 mask 信息,将 value 中的值填充到 x 中 mask 对应为 True 的位置。" + " :ref:`paddle.masked_scatter ` ", "根据 mask 信息,将 value 中的值逐个填充到 x 中 mask 对应为 True 的位置。" " :ref:`paddle.diagonal_scatter ` ", "根据给定的轴 axis 和偏移量 offset,将张量 y 的值填充到张量 x 中" " :ref:`paddle.index_fill ` ", "沿着指定轴 axis 将 index 中指定位置的 x 的值填充为 value" " :ref:`paddle.column_stack ` ", "沿水平轴堆叠输入 x 中的所有张量。" diff --git a/docs/api/paddle/Tensor_cn.rst b/docs/api/paddle/Tensor_cn.rst index 4b9e56d4870..7797e1bae6e 100755 --- a/docs/api/paddle/Tensor_cn.rst +++ b/docs/api/paddle/Tensor_cn.rst @@ -3121,6 +3121,19 @@ masked_fill_(x, mask, value, name=None) Inplace 版本的 :ref:`cn_api_paddle_masked_fill` API,对输入 `x` 采用 Inplace 策略。 +masked_scatter(x, mask, value, name=None) +::::::::: +根据 mask 信息,将 value 中的值逐个填充到 x 中 mask 对应为 True 的位置。 + +返回一个根据 mask 将对应位置填充为 value 中元素的 Tensor。 + +请参考 :ref:`cn_api_paddle_masked_scatter` + +masked_scatter_(x, mask, value, name=None) +::::::::: + +Inplace 版本的 :ref:`cn_api_paddle_masked_scatter` API,对输入 `x` 采用 Inplace 策略。 + atleast_1d(name=None) ::::::::: 将输入转换为张量并返回至少为 ``1`` 维的视图。 ``1`` 维或更高维的输入会被保留。 diff --git a/docs/api/paddle/masked_scatter__cn.rst b/docs/api/paddle/masked_scatter__cn.rst new file mode 100644 index 00000000000..6fc340c9ede --- /dev/null +++ b/docs/api/paddle/masked_scatter__cn.rst @@ -0,0 +1,11 @@ +.. _cn_api_paddle_masked_scatter_: + +masked_scatter\_ +------------------------------- + +.. py:function:: paddle.masked_scatter_(x) +Inplace 版本的 :ref:`cn_api_paddle_masked_scatter` API,对输入 x 采用 Inplace 策略。 + +更多关于 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_scatter_cn.rst b/docs/api/paddle/masked_scatter_cn.rst new file mode 100644 index 00000000000..c0f6865a66d --- /dev/null +++ b/docs/api/paddle/masked_scatter_cn.rst @@ -0,0 +1,28 @@ +.. _cn_api_paddle_masked_scatter: + +masked_scatter +------------------------------- + +.. py:function:: paddle.masked_scatter(x, mask, value, name=None) + + + +返回一个 N-D 的 Tensor,Tensor 的值是根据 ``mask`` 信息,将 ``value`` 中的值逐个填充到 ``x`` 中 ``mask`` 对应为 ``True`` 的位置,``mask`` 的数据类型是 bool。 + +参数 +:::::::::::: + + - **x** (Tensor) - 输入 Tensor,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。 + - **mask** (Tensor) - 布尔张量,表示要填充的位置。mask 的数据类型必须为 bool。 + - **value** (Tensor):用于填充目标张量的值,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +返回 +:::::::::::: +返回一个根据 ``mask`` 将对应位置逐个填充 ``value`` 中的 Tensor,数据类型与 ``x`` 相同。 + + +代码示例 +:::::::::::: + +COPY-FROM: paddle.masked_scatter diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.masked_scatter.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.masked_scatter.md new file mode 100644 index 00000000000..f7b796a9aaf --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.masked_scatter.md @@ -0,0 +1,22 @@ +## [ 参数完全一致 ] torch.Tensor.masked_scatter + +### [torch.Tensor.masked_scatter](https://pytorch.org/docs/stable/generated/torch.Tensor.masked_scatter.html?highlight=masked_scatter#torch.Tensor.masked_scatter) + +```python +torch.Tensor.masked_scatter(mask, value) +``` + +### [paddle.Tensor.masked_scatter](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#masked-scatter-mask-value-name-non) + +```python +paddle.Tensor.masked_scatter(mask, value, name=None) +``` + +两者功能一致,参数完全一致,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +|---------|--------------| -------------------------------------------------- | +| mask | mask | 布尔张量,表示要填充的位置 | +| value | value | 用于填充目标张量的值 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.masked_scatter_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.masked_scatter_.md new file mode 100644 index 00000000000..a4d97f82810 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.masked_scatter_.md @@ -0,0 +1,22 @@ +## [ 参数完全一致 ] torch.Tensor.masked_scatter_ + +### [torch.Tensor.masked_scatter_](https://pytorch.org/docs/stable/generated/torch.Tensor.masked_scatter_.html?highlight=masked_scatter#torch.Tensor.masked_scatter_) + +```python +torch.Tensor.masked_scatter_(mask, value) +``` + +### [paddle.Tensor.masked_scatter_]() + +```python +paddle.Tensor.masked_scatter_(mask, value, name=None) +``` + +两者功能一致,参数完全一致,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +|---------|--------------| -------------------------------------------------- | +| mask | mask | 布尔张量,表示要填充的位置 | +| value | value | 用于填充目标张量的值 | diff --git a/docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md b/docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md index 1760f4da533..af7f320139b 100644 --- a/docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md +++ b/docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md @@ -625,7 +625,7 @@ 梳理了`torch.Tensor.XX`类 API 的 PyTorch-PaddlePaddle API 映射列表。 | 序号 | PyTorch API | PaddlePaddle API | 备注 | - |-----| --- | --- | --- | +-----|-----| --- | --- | --- | | 1 | [torch.Tensor.device](https://pytorch.org/docs/stable/generated/torch.Tensor.device.html) | [paddle.Tensor.place](https://www.paddlepaddle.org.cn/documentation/docs/api/paddle/Tensor_cn.html#place) | 功能一致, 无参数 , [差异对比](https://github.com/PaddlePaddle/docs/tree/develop/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.device.md) | | 2 | [torch.Tensor.grad](https://pytorch.org/docs/stable/generated/torch.Tensor.grad.html) | [paddle.Tensor.grad](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#grad) | 功能一致, 无参数 , [差异对比](https://github.com/PaddlePaddle/docs/tree/develop/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.grad.md) | | 3 | [torch.Tensor.imag](https://pytorch.org/docs/stable/generated/torch.Tensor.imag.html) | [paddle.Tensor.imag](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#imag-name-none) | 功能一致, 无参数 , [差异对比](https://github.com/PaddlePaddle/docs/tree/develop/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.imag.md) | @@ -932,6 +932,8 @@ | 304 | [torch.Tensor.resize_](https://pytorch.org/docs/stable/generated/torch.Tensor.resize_.html?highlight=resize#torch.Tensor.resize_) | | 功能缺失 | | 305 | [torch.Tensor.masked_fill_](https://pytorch.org/docs/stable/generated/torch.Tensor.masked_fill_.html?highlight=resize#torch.Tensor.masked_fill_) | [paddle.Tensor.masked_fill_](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#id25) | 功能完全一致 | | 306 | [torch.Tensor.tensor_split](https://pytorch.org/docs/stable/generated/torch.Tensor.tensor_split.html) | [paddle.Tensor.tensor_split](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#tensor_split-indices_or_sections-axis-0-name-none) | 功能完全一致,仅参数名不一致 [差异对比](https://github.com/PaddlePaddle/docs/tree/develop/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.tensor_split.md) | +| 307 | [torch.Tensor.masked_scatter](https://pytorch.org/docs/stable/generated/torch.Tensor.masked_scatter.html?highlight=resize#torch.Tensor.masked_scatter) | [paddle.Tensor.masked_scatter](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#id25) | 功能完全一致 | +| 308 | [torch.Tensor.masked_scatter_](https://pytorch.org/docs/stable/generated/torch.Tensor.masked_scatter_.html?highlight=resize#torch.Tensor.masked_scatter_) | [paddle.Tensor.masked_scatter_](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#id25) | 功能完全一致 | | 序号 | PyTorch API | PaddlePaddle API | 备注 | From 00d8f11cd8d66636e395b0622f75eb2cedec9165 Mon Sep 17 00:00:00 2001 From: yangguohao <1901212980@pku.edu.cn> Date: Wed, 20 Dec 2023 16:28:40 +0800 Subject: [PATCH 2/3] fix --- docs/api/paddle/masked_scatter_cn.rst | 2 +- .../convert_from_pytorch/pytorch_api_mapping_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api/paddle/masked_scatter_cn.rst b/docs/api/paddle/masked_scatter_cn.rst index c0f6865a66d..147d8785a88 100644 --- a/docs/api/paddle/masked_scatter_cn.rst +++ b/docs/api/paddle/masked_scatter_cn.rst @@ -14,7 +14,7 @@ masked_scatter - **x** (Tensor) - 输入 Tensor,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。 - **mask** (Tensor) - 布尔张量,表示要填充的位置。mask 的数据类型必须为 bool。 - - **value** (Tensor):用于填充目标张量的值,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。 + - **value** (Tensor) - 用于填充目标张量的值,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 diff --git a/docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md b/docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md index af7f320139b..8e9d643481e 100644 --- a/docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md +++ b/docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md @@ -625,7 +625,7 @@ 梳理了`torch.Tensor.XX`类 API 的 PyTorch-PaddlePaddle API 映射列表。 | 序号 | PyTorch API | PaddlePaddle API | 备注 | ------|-----| --- | --- | --- | + |-----| --- | --- | --- | | 1 | [torch.Tensor.device](https://pytorch.org/docs/stable/generated/torch.Tensor.device.html) | [paddle.Tensor.place](https://www.paddlepaddle.org.cn/documentation/docs/api/paddle/Tensor_cn.html#place) | 功能一致, 无参数 , [差异对比](https://github.com/PaddlePaddle/docs/tree/develop/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.device.md) | | 2 | [torch.Tensor.grad](https://pytorch.org/docs/stable/generated/torch.Tensor.grad.html) | [paddle.Tensor.grad](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#grad) | 功能一致, 无参数 , [差异对比](https://github.com/PaddlePaddle/docs/tree/develop/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.grad.md) | | 3 | [torch.Tensor.imag](https://pytorch.org/docs/stable/generated/torch.Tensor.imag.html) | [paddle.Tensor.imag](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#imag-name-none) | 功能一致, 无参数 , [差异对比](https://github.com/PaddlePaddle/docs/tree/develop/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.imag.md) | From 94b17e7c8739c1f0e966cb13955589d29f0febd1 Mon Sep 17 00:00:00 2001 From: yangguohao <1901212980@pku.edu.cn> Date: Wed, 20 Dec 2023 17:25:39 +0800 Subject: [PATCH 3/3] fix --- docs/api/paddle/masked_scatter__cn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/paddle/masked_scatter__cn.rst b/docs/api/paddle/masked_scatter__cn.rst index 6fc340c9ede..5740aea18c2 100644 --- a/docs/api/paddle/masked_scatter__cn.rst +++ b/docs/api/paddle/masked_scatter__cn.rst @@ -3,7 +3,7 @@ masked_scatter\_ ------------------------------- -.. py:function:: paddle.masked_scatter_(x) +.. py:function:: paddle.masked_scatter_(x, mask, value, name=None) Inplace 版本的 :ref:`cn_api_paddle_masked_scatter` API,对输入 x 采用 Inplace 策略。 更多关于 inplace 操作的介绍请参考 `3.1.3 原位(Inplace)操作和非原位操作的区别`_ 了解详情。