From 9cc8c5a7fe1164d242eebcb04c97acf3d1d71042 Mon Sep 17 00:00:00 2001 From: ccsuzzh <1719571694@qq.com> Date: Wed, 18 Sep 2024 23:21:59 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E3=80=90Hackathon=207th=20No.35=E3=80=91?= =?UTF-8?q?=E4=B8=BA=20Paddle=20=E4=BB=A3=E7=A0=81=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=96=B0=E5=A2=9E=20API=20=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E8=A7=84=E5=88=99=EF=BC=88=E7=AC=AC=202=20=E7=BB=84=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tensor/torch.Tensor.addbmm_.md | 18 ++++++++++ .../Tensor/torch.Tensor.addcdiv_.md | 23 +++++++++++++ .../Tensor/torch.Tensor.addmv_.md | 18 ++++++++++ .../Tensor/torch.Tensor.addr_.md | 19 +++++++++++ .../Tensor/torch.Tensor.baddbmm_.md | 18 ++++++++++ .../Tensor/torch.Tensor.copysign.md | 30 ++++++++++++++++ .../Tensor/torch.Tensor.copysign_.md | 30 ++++++++++++++++ .../Tensor/torch.Tensor.erfc_.md | 19 +++++++++++ .../Tensor/torch.Tensor.fix_.md | 19 +++++++++++ .../Tensor/torch.Tensor.fmod_.md | 31 +++++++++++++++++ .../Tensor/torch.Tensor.int_repr.md | 22 ++++++++++++ .../Tensor/torch.Tensor.mul_.md | 34 +++++++++++++++++++ .../Tensor/torch.Tensor.sinc_.md | 20 +++++++++++ .../api_difference/Tensor/torch.Tensor.t_.md | 19 +++++++++++ .../Tensor/torch.Tensor.transpose_.md | 32 +++++++++++++++++ .../Tensor/torch.Tensor.xlogy_.md | 19 +++++++++++ 16 files changed, 371 insertions(+) create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addbmm_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addcdiv_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addmv_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addr_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.baddbmm_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.erfc_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fmod_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.int_repr.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.mul_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.sinc_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.t_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.transpose_.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.xlogy_.md diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addbmm_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addbmm_.md new file mode 100644 index 00000000000..9bc25010808 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addbmm_.md @@ -0,0 +1,18 @@ +## [ 组合替代实现 ]torch.Tensor.addbmm_ + +### [torch.Tensor.addbmm_](https://pytorch.org/docs/stable/generated/torch.Tensor.addbmm_.html#torch.Tensor.addbmm_) + +```python +torch.Tensor.addbmm_(batch1, batch2, *, beta=1, alpha=1) +``` +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +input.addbmm_(batch1, batch2, beta=beta, alpha=alpha) + +# Paddle 写法 +paddle.assign(beta * input + alpha * paddle.sum(paddle.bmm(batch1, batch2), axis=0), input) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addcdiv_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addcdiv_.md new file mode 100644 index 00000000000..008894ad1aa --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addcdiv_.md @@ -0,0 +1,23 @@ +## [ 组合替代实现 ]torch.Tensor.addcdiv_ + +### [torch.Tensor.addcdiv_](https://pytorch.org/docs/stable/generated/torch.Tensor.addcdiv_.html#torch.Tensor.addcdiv_) + +```python +torch.Tensor.addcdiv_(tensor1, tensor2, *, value=1) +``` + +用于实现矩阵 `tensor1` 与矩阵 `tensor2` 相除,再加上输入 `input` ,公式为: + +$ out = input + value * (tensor1 / tensor2) $ + +PaddlePaddle 目前无对应 API,可使用如下代码组合实现该 API。 + +### 转写示例 + +```python +# PyTorch 写法 +input.addcdiv_(tensor1, tensor2, value=value) + +# Paddle 写法 +paddle.assign(input + value * tensor1 / tensor2, input) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addmv_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addmv_.md new file mode 100644 index 00000000000..961948f6e0c --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addmv_.md @@ -0,0 +1,18 @@ +## [ 组合替代实现 ]torch.Tensor.addmv_ + +### [torch.Tensor.addmv_](https://pytorch.org/docs/stable/generated/torch.Tensor.addmv_.html#torch.Tensor.addmv_) +```python +torch.Tensor.addmv_(mat, vec, beta=1, alpha=1, out=None) +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +input.addmv_(mat, vec, beta=beta, alpha=alpha) + +# Paddle 写法 +paddle.assign(beta * input + alpha * paddle.mm(mat, vec), input) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addr_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addr_.md new file mode 100644 index 00000000000..841e2f12013 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addr_.md @@ -0,0 +1,19 @@ +## [ 组合替代实现 ]torch.Tensor.addr_ + +### [torch.Tensor.addr_](https://pytorch.org/docs/stable/generated/torch.Tensor.addr_.html#torch.Tensor.addr_) + +```python +torch.Tensor.addr_(vec1, vec2, beta=1, alpha=1) +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +y = input.addr_(vec1, vec2, beta=beta, alpha=alpha) + +# Paddle 写法 +paddle.assign(beta * input + alpha * paddle.outer(vec1, vec2), input) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.baddbmm_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.baddbmm_.md new file mode 100644 index 00000000000..d73d744e4eb --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.baddbmm_.md @@ -0,0 +1,18 @@ +## [ 组合替代实现 ]torch.Tensor.baddbmm_ + +### [torch.Tensor.baddbmm_](https://pytorch.org/docs/stable/generated/torch.Tensor.baddbmm_.html#torch.Tensor.baddbmm_) + +```python +torch.Tensor.baddbmm_(batch1, batch2, beta=1, alpha=1) +``` +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +input.baddbmm_(batch1, batch2, beta=beta, alpha=alpha) + +# Paddle 写法 +paddle.assign(beta * input + alpha * paddle.bmm(batch1, batch2), input) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign.md new file mode 100644 index 00000000000..3ffe0c4832c --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign.md @@ -0,0 +1,30 @@ +## [ 组合替代实现 ] torch.Tensor.copysign + +### [torch.Tensor.copysign](https://pytorch.org/docs/stable/generated/torch.Tensor.copysign.html#torch.Tensor.copysign) + +```python +torch.Tensor.copysign(other) +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +#### other:输入,类型为 tensor 时 +```python +# PyTorch 写法 +y = input.copysign(other=x) + +# Paddle 写法 +y = paddle.copysign(input, x) +``` + +#### other:输入,类型为 number 时 +```python +# PyTorch 写法 +y = input.copysign(other=x) + +# Paddle 写法 +tensor = paddle.to_tensor([x]) +y = paddle.copysign(input, tensor) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign_.md new file mode 100644 index 00000000000..625d99a8746 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign_.md @@ -0,0 +1,30 @@ +## [ 组合替代实现 ] torch.Tensor.copysign_ + +### [torch.Tensor.copysign_](https://pytorch.org/docs/stable/generated/torch.Tensor.copysign_.html#torch.Tensor.copysign_) + +```python +torch.Tensor.copysign_(other) +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +#### other:输入,类型为 tensor 时 +```python +# PyTorch 写法 +input.copysign(other=x) + +# Paddle 写法 +paddle.assign(paddle.copysign(input, x), input) +``` + +#### other:输入,类型为 number 时 +```python +# PyTorch 写法 +input.copysign(other=x) + +# Paddle 写法 +tensor = paddle.to_tensor([x]) +paddle.assign(paddle.copysign(input, x), input) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.erfc_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.erfc_.md new file mode 100644 index 00000000000..69c8324f260 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.erfc_.md @@ -0,0 +1,19 @@ +## [ 组合替代实现 ]torch.Tensor.erfc_ + +### [torch.Tensor.erfc_](https://pytorch.org/docs/stable/generated/torch.Tensor.erfc_.html) + +```python +torch.Tensor.erfc_() +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +x.erfc_() + +# Paddle 写法 +paddle.assign(1 - x.erf(), x) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md new file mode 100644 index 00000000000..4fde9c1ed7a --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md @@ -0,0 +1,19 @@ +## [ 组合替代实现 ]torch.Tensor.fix_ + +### [torch.Tensor.fix_](https://pytorch.org/docs/stable/generated/torch.Tensor.fix_.html#torch.Tensor.fix_) + +```python +torch.Tensor.fix_() +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +x.fix_() + +# Paddle 写法 +paddle.assign(x.fix_(), x) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fmod_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fmod_.md new file mode 100644 index 00000000000..3f9d317746d --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fmod_.md @@ -0,0 +1,31 @@ +## [ 输入参数类型不一致 ]torch.Tensor.fmod_ + +### [torch.Tensor.fmod_](https://pytorch.org/docs/stable/generated/torch.Tensor.fmod_.html#torch.Tensor.fmod_) + +```python +torch.Tensor.fmod_(other) +``` + +### [paddle.Tensor.mod](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#mod-y-name-none) + +```python +paddle.Tensor.mod(y, name=None) +``` + +其中,PyTorch 与 Paddle 的 `other` 参数所支持类型不一致,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------- | ------------ | ----------------------------- | +| other | y | 多维 Tensor,PyTorch 支持 Tensor 和 Python Number,Paddle 仅支持 Tensor,需要转写。 | + +### 转写示例 +#### other +```python +# PyTorch 写法 +x.fmod_(other=2.) + +# Paddle 写法 +paddle.assign(x.mod(y=paddle.to_tensor(2.)), x) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.int_repr.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.int_repr.md new file mode 100644 index 00000000000..4558c94b4e0 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.int_repr.md @@ -0,0 +1,22 @@ +## [ paddle 参数更多 ] torch.Tensor.int_repr + +### [torch.Tensor.int_repr](https://pytorch.org/docs/stable/generated/torch.Tensor.int_repr.html#torch.Tensor.int_repr) + +```python +torch.Tensor.int_repr() +``` + +### [paddle.tensor.create_tensor](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#create-tensor-dtype-name-none-persistable-false) + +```python +paddle.tensor.create_tensor(dtype, name=None, persistable=False) + +``` + +Paddle 比 PyTorch 支持更多参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------- | ------------ | ----------------------------------------------------------- | +| - | dtype | Tensor 的数据类型,PyTorch 无此参数,Paddle 需设置为 'uint8'。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.mul_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.mul_.md new file mode 100644 index 00000000000..27183ef1c17 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.mul_.md @@ -0,0 +1,34 @@ +## [ 输入参数类型不一致 ] torch.Tensor.mul_ + +### [torch.Tensor.mul_](https://pytorch.org/docs/stable/generated/torch.Tensor.mul_.html) + +```python +torch.Tensor.mul_(other) +``` + +### [paddle.Tensor.multiply](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#multiply-y-axis-1-name-none) + +```python +paddle.Tensor.multiply(y, + axis=-1, + name=None) +``` + +其中,Paddle 与 PyTorch 的 `other` 参数所支持类型不一致,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------------- | ------------ | ----------------------------------------------- | +| other | y | 相乘的元素,PyTorch 支持 Tensor 和 Python Number,Paddle 仅支持 Tensor,需要转写。 | +| - | axis | 计算的维度,PyTorch 无此参数, Paddle 保持默认即可。| + +### 转写示例 +#### other:相乘的元素 +```python +# PyTorch 写法 +x.mul_(other=2) + +# Paddle 写法 +paddle.assign(x.multiply(y=paddle.to_tensor(2)), x) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.sinc_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.sinc_.md new file mode 100644 index 00000000000..8ce756636ec --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.sinc_.md @@ -0,0 +1,20 @@ +## [ 组合替代实现 ]torch.Tensor.sinc_ + +### [torch.Tensor.sinc_](https://pytorch.org/docs/stable/generated/torch.Tensor.sinc_.html#torch.Tensor.sinc_) + +```python +torch.Tensor.sinc_() +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +a.sinc_() + +# Paddle 写法 +import numpy +paddle.assign(paddle.where(a==0, x=paddle.to_tensor([1], dtype=a.dtype), y=paddle.sin(numpy.pi*a)/(numpy.pi*a)), a) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.t_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.t_.md new file mode 100644 index 00000000000..44990bed3cb --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.t_.md @@ -0,0 +1,19 @@ +## [ 组合替代实现 ] torch.Tensor.t_ + +### [torch.Tensor.t_](https://pytorch.org/docs/stable/generated/torch.Tensor.t_.html#torch.Tensor.t_) + +```python +torch.Tensor.t_() +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +x.t_() + +# Paddle 写法 +paddle.assign(x.t(), x) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.transpose_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.transpose_.md new file mode 100644 index 00000000000..b7ceed2c2cc --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.transpose_.md @@ -0,0 +1,32 @@ +## [ 输入参数用法不一致 ]torch.Tensor.transpose_ + +### [torch.Tensor.transpose_](https://pytorch.org/docs/stable/generated/torch.Tensor.transpose_.html) + +```python +torch.Tensor.transpose_(dim0, dim1) +``` + +### [paddle.Tensor.transpose](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#transpose-perm-name-none) + +```python +paddle.Tensor.transpose(perm, name=None) +``` + +PyTorch 的 `dim0, dim1` 与 Paddle 的 `perm` 用法不同,具体如下: +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------------- | ------------ | ------------------------------------------------------ | +| dim0, dim1 | perm | torch 的 dim0 与 dim1 表示要交换的两个维度, 为整数。 paddle 的 perm 表示重排的维度序列,为 list/tuple 。需要转写。| + +### 转写示例 +#### dim0, dim1: 表示要交换的两个维度 +```python +# pytorch +x = torch.randn(2, 3, 5) +x.transpose_(0, 1) + +# paddle +x = paddle.randn([2, 3, 5]) +paddle.assign(x.transpose(perm=[1, 0, 2]), x) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.xlogy_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.xlogy_.md new file mode 100644 index 00000000000..2b1d0d63a0c --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.xlogy_.md @@ -0,0 +1,19 @@ +## [ 组合替代实现 ]torch.Tensor.xlogy_ + +### [torch.Tensor.xlogy_](https://pytorch.org/docs/stable/generated/torch.Tensor.xlogy_.html#torch.Tensor.xlogy_) + +```python +torch.Tensor.xlogy_(other) +``` + +Paddle 无此 API,需要组合实现。 + +### 转写示例 + +```python +# PyTorch 写法 +a.xlogy_(b) + +# Paddle 写法 +paddle.assign(a * paddle.log(b), a) +``` From bd3fef77556c4b825dac29eb37e57ecd6042bf5e Mon Sep 17 00:00:00 2001 From: ccsuzzh <1719571694@qq.com> Date: Mon, 23 Sep 2024 23:12:33 +0800 Subject: [PATCH 2/4] update some api --- .../Tensor/torch.Tensor.copysign.md | 29 ++++++++++--------- .../Tensor/torch.Tensor.copysign_.md | 29 ++++++++++--------- .../Tensor/torch.Tensor.fix_.md | 16 ++++------ .../Tensor/torch.Tensor.fmod_.md | 6 ++-- .../Tensor/torch.Tensor.mul_.md | 6 ++-- .../Tensor/torch.Tensor.sinc_.md | 15 ++++------ .../api_difference/Tensor/torch.Tensor.t_.md | 14 ++++----- .../Tensor/torch.Tensor.transpose_.md | 6 ++-- 8 files changed, 55 insertions(+), 66 deletions(-) diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign.md index 3ffe0c4832c..4e8e53255a7 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign.md @@ -1,4 +1,4 @@ -## [ 组合替代实现 ] torch.Tensor.copysign +## [ 输入参数类型不一致 ] torch.Tensor.copysign ### [torch.Tensor.copysign](https://pytorch.org/docs/stable/generated/torch.Tensor.copysign.html#torch.Tensor.copysign) @@ -6,25 +6,26 @@ torch.Tensor.copysign(other) ``` -Paddle 无此 API,需要组合实现。 +### [paddle.Tensor.copysign]() -### 转写示例 - -#### other:输入,类型为 tensor 时 ```python -# PyTorch 写法 -y = input.copysign(other=x) - -# Paddle 写法 -y = paddle.copysign(input, x) +paddle.Tensor.copysign(y, name=None) ``` -#### other:输入,类型为 number 时 +其中,PyTorch 与 Paddle 的 `other` 参数所支持类型不一致,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------- | ------------ | ----------------------------- | +| other | y | 表示输入的 Tensor ,PyTorch 支持 Python Number 和 Tensor 类型, Paddle 仅支持 Tensor 类型。当输入为 Python Number 类型时,需要转写。 | + +### 转写示例 +#### other ```python # PyTorch 写法 -y = input.copysign(other=x) +result = x.copysign(other=2.) # Paddle 写法 -tensor = paddle.to_tensor([x]) -y = paddle.copysign(input, tensor) +result = x.copysign(y=paddle.to_tensor(2.)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign_.md index 625d99a8746..4c664fb5918 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.copysign_.md @@ -1,4 +1,4 @@ -## [ 组合替代实现 ] torch.Tensor.copysign_ +## [ 输入参数类型不一致 ] torch.Tensor.copysign_ ### [torch.Tensor.copysign_](https://pytorch.org/docs/stable/generated/torch.Tensor.copysign_.html#torch.Tensor.copysign_) @@ -6,25 +6,26 @@ torch.Tensor.copysign_(other) ``` -Paddle 无此 API,需要组合实现。 +### [paddle.Tensor.copysign_]() -### 转写示例 - -#### other:输入,类型为 tensor 时 ```python -# PyTorch 写法 -input.copysign(other=x) - -# Paddle 写法 -paddle.assign(paddle.copysign(input, x), input) +paddle.Tensor.copysign_(y, name=None) ``` -#### other:输入,类型为 number 时 +其中,PyTorch 与 Paddle 的 `other` 参数所支持类型不一致,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------- | ------------ | ----------------------------- | +| other | y | 表示输入的 Tensor ,PyTorch 支持 Python Number 和 Tensor 类型, Paddle 仅支持 Tensor 类型。当输入为 Python Number 类型时,需要转写。 | + +### 转写示例 +#### other ```python # PyTorch 写法 -input.copysign(other=x) +result = x.copysign_(other=2.) # Paddle 写法 -tensor = paddle.to_tensor([x]) -paddle.assign(paddle.copysign(input, x), input) +result = x.copysign_(y=paddle.to_tensor(2.)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md index 4fde9c1ed7a..35448819a5d 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md @@ -1,19 +1,15 @@ -## [ 组合替代实现 ]torch.Tensor.fix_ +## [ 无参数 ]torch.Tensor.fix_ -### [torch.Tensor.fix_](https://pytorch.org/docs/stable/generated/torch.Tensor.fix_.html#torch.Tensor.fix_) +### [torch.Tensor.fix_](https://pytorch.org/docs/stable/generated/torch.Tensor.fix_.html) ```python torch.Tensor.fix_() ``` -Paddle 无此 API,需要组合实现。 - -### 转写示例 +### [paddle.Tensor.trunc_]() ```python -# PyTorch 写法 -x.fix_() - -# Paddle 写法 -paddle.assign(x.fix_(), x) +paddle.Tensor.trunc_() ``` + +两者功能一致,均无参数。 \ No newline at end of file diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fmod_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fmod_.md index 3f9d317746d..9662f89b922 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fmod_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fmod_.md @@ -6,10 +6,10 @@ torch.Tensor.fmod_(other) ``` -### [paddle.Tensor.mod](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#mod-y-name-none) +### [paddle.Tensor.mod_]() ```python -paddle.Tensor.mod(y, name=None) +paddle.Tensor.mod_(y, name=None) ``` 其中,PyTorch 与 Paddle 的 `other` 参数所支持类型不一致,具体如下: @@ -27,5 +27,5 @@ paddle.Tensor.mod(y, name=None) x.fmod_(other=2.) # Paddle 写法 -paddle.assign(x.mod(y=paddle.to_tensor(2.)), x) +x.mod_(y=paddle.to_tensor(2.)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.mul_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.mul_.md index 27183ef1c17..3dc49bbb367 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.mul_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.mul_.md @@ -6,10 +6,10 @@ torch.Tensor.mul_(other) ``` -### [paddle.Tensor.multiply](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#multiply-y-axis-1-name-none) +### [paddle.Tensor.multiply_]() ```python -paddle.Tensor.multiply(y, +paddle.Tensor.multiply_(y, axis=-1, name=None) ``` @@ -30,5 +30,5 @@ paddle.Tensor.multiply(y, x.mul_(other=2) # Paddle 写法 -paddle.assign(x.multiply(y=paddle.to_tensor(2)), x) +x.multiply_(y=paddle.to_tensor(2)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.sinc_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.sinc_.md index 8ce756636ec..8bbddfa98fa 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.sinc_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.sinc_.md @@ -1,4 +1,4 @@ -## [ 组合替代实现 ]torch.Tensor.sinc_ +## [ 无参数 ]torch.Tensor.sinc_ ### [torch.Tensor.sinc_](https://pytorch.org/docs/stable/generated/torch.Tensor.sinc_.html#torch.Tensor.sinc_) @@ -6,15 +6,10 @@ torch.Tensor.sinc_() ``` -Paddle 无此 API,需要组合实现。 - -### 转写示例 +### [paddle.Tensor.sinc_]() ```python -# PyTorch 写法 -a.sinc_() - -# Paddle 写法 -import numpy -paddle.assign(paddle.where(a==0, x=paddle.to_tensor([1], dtype=a.dtype), y=paddle.sin(numpy.pi*a)/(numpy.pi*a)), a) +paddle.Tensor.sinc_() ``` + +两者功能一致,均无参数。 diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.t_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.t_.md index 44990bed3cb..d985f8d89a7 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.t_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.t_.md @@ -1,4 +1,4 @@ -## [ 组合替代实现 ] torch.Tensor.t_ +## [ 无参数 ] torch.Tensor.t_ ### [torch.Tensor.t_](https://pytorch.org/docs/stable/generated/torch.Tensor.t_.html#torch.Tensor.t_) @@ -6,14 +6,10 @@ torch.Tensor.t_() ``` -Paddle 无此 API,需要组合实现。 - -### 转写示例 +### [paddle.Tensor.t_]() ```python -# PyTorch 写法 -x.t_() - -# Paddle 写法 -paddle.assign(x.t(), x) +paddle.Tensor.t_() ``` + +两者功能一致,无参数。 diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.transpose_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.transpose_.md index b7ceed2c2cc..24e3d68211e 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.transpose_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.transpose_.md @@ -6,10 +6,10 @@ torch.Tensor.transpose_(dim0, dim1) ``` -### [paddle.Tensor.transpose](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#transpose-perm-name-none) +### [paddle.Tensor.transpose_]() ```python -paddle.Tensor.transpose(perm, name=None) +paddle.Tensor.transpose_(perm, name=None) ``` PyTorch 的 `dim0, dim1` 与 Paddle 的 `perm` 用法不同,具体如下: @@ -28,5 +28,5 @@ x.transpose_(0, 1) # paddle x = paddle.randn([2, 3, 5]) -paddle.assign(x.transpose(perm=[1, 0, 2]), x) +x.transpose_(perm=[1, 0, 2]) ``` From 188be7e3c3b05c6d36c5e234091390d499f056e3 Mon Sep 17 00:00:00 2001 From: Zhenghai Zhang <1719571694@qq.com> Date: Tue, 24 Sep 2024 08:28:59 +0800 Subject: [PATCH 3/4] fix codestyle --- .../api_difference/Tensor/torch.Tensor.fix_.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md index 35448819a5d..7ff2c4fff9a 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.fix_.md @@ -12,4 +12,4 @@ torch.Tensor.fix_() paddle.Tensor.trunc_() ``` -两者功能一致,均无参数。 \ No newline at end of file +两者功能一致,均无参数。 From 0bb562e3263327e4a0987ad4c4e3ea0dc2b70c11 Mon Sep 17 00:00:00 2001 From: ccsuzzh <1719571694@qq.com> Date: Sat, 28 Sep 2024 21:27:42 +0800 Subject: [PATCH 4/4] change paddle.assign to inplace api --- .../Tensor/torch.Tensor.addbmm_.md | 9 ++++++++- .../Tensor/torch.Tensor.addcdiv_.md | 2 +- .../Tensor/torch.Tensor.addmv_.md | 2 +- .../api_difference/Tensor/torch.Tensor.addr_.md | 2 +- .../Tensor/torch.Tensor.baddbmm_.md | 2 +- .../api_difference/Tensor/torch.Tensor.erfc_.md | 2 +- .../Tensor/torch.Tensor.int_repr.md | 17 +++-------------- .../Tensor/torch.Tensor.xlogy_.md | 2 +- 8 files changed, 17 insertions(+), 21 deletions(-) diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addbmm_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addbmm_.md index 9bc25010808..f9906904680 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addbmm_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addbmm_.md @@ -5,6 +5,13 @@ ```python torch.Tensor.addbmm_(batch1, batch2, *, beta=1, alpha=1) ``` + +用于实现矩阵 `batch1` 与矩阵 `batch2` 相乘,将结果按 `axis=0` 求和之后与`alpha`相乘,再加上输入 `input` 与 `beta`,公式为: + +$$ +out = \beta \, input + \alpha \left( \sum_{i=0}^{b-1} batch1_i \, @ \, batch2_i \right) +$$ + Paddle 无此 API,需要组合实现。 ### 转写示例 @@ -14,5 +21,5 @@ Paddle 无此 API,需要组合实现。 input.addbmm_(batch1, batch2, beta=beta, alpha=alpha) # Paddle 写法 -paddle.assign(beta * input + alpha * paddle.sum(paddle.bmm(batch1, batch2), axis=0), input) +input.multiply_(paddle.to_tensor(beta, dtype=input.dtype)).add_(alpha * paddle.sum(paddle.bmm(batch1, batch2), axis=0)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addcdiv_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addcdiv_.md index 008894ad1aa..7362c1bf475 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addcdiv_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addcdiv_.md @@ -19,5 +19,5 @@ PaddlePaddle 目前无对应 API,可使用如下代码组合实现该 API。 input.addcdiv_(tensor1, tensor2, value=value) # Paddle 写法 -paddle.assign(input + value * tensor1 / tensor2, input) +input.add_(value * tensor1 / tensor2) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addmv_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addmv_.md index 961948f6e0c..5e16b630f76 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addmv_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addmv_.md @@ -14,5 +14,5 @@ Paddle 无此 API,需要组合实现。 input.addmv_(mat, vec, beta=beta, alpha=alpha) # Paddle 写法 -paddle.assign(beta * input + alpha * paddle.mm(mat, vec), input) +input.multiply_(paddle.to_tensor(beta, dtype=input.dtype)).add_(alpha * paddle.mm(mat, vec)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addr_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addr_.md index 841e2f12013..ca21c894e3f 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addr_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.addr_.md @@ -15,5 +15,5 @@ Paddle 无此 API,需要组合实现。 y = input.addr_(vec1, vec2, beta=beta, alpha=alpha) # Paddle 写法 -paddle.assign(beta * input + alpha * paddle.outer(vec1, vec2), input) +input.multiply_(paddle.to_tensor(beta, dtype=input.dtype)).add_(alpha * paddle.outer(vec1, vec2)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.baddbmm_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.baddbmm_.md index d73d744e4eb..06be2bb90f8 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.baddbmm_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.baddbmm_.md @@ -14,5 +14,5 @@ Paddle 无此 API,需要组合实现。 input.baddbmm_(batch1, batch2, beta=beta, alpha=alpha) # Paddle 写法 -paddle.assign(beta * input + alpha * paddle.bmm(batch1, batch2), input) +input.multiply_(paddle.to_tensor(beta, dtype=input.dtype)).add_(alpha * paddle.bmm(batch1, batch2)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.erfc_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.erfc_.md index 69c8324f260..41d7ed7fe35 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.erfc_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.erfc_.md @@ -15,5 +15,5 @@ Paddle 无此 API,需要组合实现。 x.erfc_() # Paddle 写法 -paddle.assign(1 - x.erf(), x) +paddle.erf_(x).multiply_(paddle.to_tensor(-1.)).add_(paddle.to_tensor(1.)) ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.int_repr.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.int_repr.md index 4558c94b4e0..f62b0864b0c 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.int_repr.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.int_repr.md @@ -1,4 +1,4 @@ -## [ paddle 参数更多 ] torch.Tensor.int_repr +## [ 功能缺失 ] torch.Tensor.int_repr ### [torch.Tensor.int_repr](https://pytorch.org/docs/stable/generated/torch.Tensor.int_repr.html#torch.Tensor.int_repr) @@ -6,17 +6,6 @@ torch.Tensor.int_repr() ``` -### [paddle.tensor.create_tensor](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#create-tensor-dtype-name-none-persistable-false) +### []() -```python -paddle.tensor.create_tensor(dtype, name=None, persistable=False) - -``` - -Paddle 比 PyTorch 支持更多参数,具体如下: - -### 参数映射 - -| PyTorch | PaddlePaddle | 备注 | -| ------- | ------------ | ----------------------------------------------------------- | -| - | dtype | Tensor 的数据类型,PyTorch 无此参数,Paddle 需设置为 'uint8'。 | +Paddle 当前无对应功能,功能缺失。 diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.xlogy_.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.xlogy_.md index 2b1d0d63a0c..af3d6c069de 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.xlogy_.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/Tensor/torch.Tensor.xlogy_.md @@ -15,5 +15,5 @@ Paddle 无此 API,需要组合实现。 a.xlogy_(b) # Paddle 写法 -paddle.assign(a * paddle.log(b), a) +a.multiply_(paddle.log(paddle.to_tensor(b))) ```