Skip to content

Commit

Permalink
【Hackathon 5th No.47】API转换 103-124 -part (#6380)
Browse files Browse the repository at this point in the history
  • Loading branch information
co63oc authored Dec 11, 2023
1 parent e4f4dea commit 5e2ee33
Show file tree
Hide file tree
Showing 17 changed files with 396 additions and 39 deletions.
2 changes: 1 addition & 1 deletion docs/api/paddle/io/ConcatDataset_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
ConcatDataset
-------------------------------

.. py:class:: paddle.io.ConcatDataset(dataset)
.. py:class:: paddle.io.ConcatDataset(datasets)
将多个数据集拼接为一个。

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
## [ 组合替代实现 ]torch.Tensor.hypot
## [ 仅参数名不一致 ]torch.Tensor.hypot

### [torch.Tensor.hypot](https://pytorch.org/docs/stable/generated/torch.Tensor.hypot.html#torch.Tensor.hypot)

```python
torch.Tensor.hypot(other)
```

给定直角三角形的直角边,求斜边; Paddle 无此 API,需要组合实现。

### 转写示例
### [paddle.Tensor.hypot](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/hypot_cn.html)

```python
# Pytorch 写法
y = a.hypot(b)

# Paddle 写法
y = (a**2 + b**2) ** (1/2)
paddle.Tensor.hypot(y)
```

两者功能一致且参数用法一致,仅参数名不一致,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ----------------------------- |
| other | y | 输入 Tensor,仅参数名不一致。 |
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## [ 仅参数名不一致 ]torch.Tensor.hypot_

### [torch.Tensor.hypot_](https://pytorch.org/docs/stable/generated/torch.Tensor.hypot_.html#torch.Tensor.hypot_)

```python
torch.Tensor.hypot_(other)
```

### [paddle.Tensor.hypot_](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/hypot__cn.html)

```python
paddle.Tensor.hypot_(y)
```

两者功能一致且参数用法一致,仅参数名不一致,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ----------------------------- |
| other | y | 输入 Tensor,仅参数名不一致。 |
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## [参数完全一致 ]torch.Tensor.masked_select

### [torch.Tensor.masked_select](https://pytorch.org/docs/stable/generated/torch.Tensor.masked_select.html?highlight=masked_select#torch.Tensor.masked_select)

```python
torch.Tensor.masked_select(mask)
```

### [paddle.Tensor.masked_select](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#masked-select-mask-name-none)

```python
paddle.Tensor.masked_select(mask, name=None)
```

两者功能一致,参数完全一致,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------------------------------------ |
| mask | mask | 表示用于索引的二进制掩码的 Tensor 。 |
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
torch.Tensor.to(dtype, non_blocking=False, copy=False, memory_format=torch.preserve_format)
```

### [paddle.Tensor.cast](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#cast-dtype)
### [paddle.Tensor.to](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#to-args-kwargs)

```python
paddle.Tensor.cast(dtype)
paddle.Tensor.to(dtype, blocking=True)
```

Pytorch 相比 Paddle 支持更多其他参数,具体如下:
Expand All @@ -19,10 +19,24 @@ Pytorch 相比 Paddle 支持更多其他参数,具体如下:
| PyTorch | PaddlePaddle | 备注 |
| ------------- | ------------ | ----------------------------------------------------------------------- |
| dtype | dtype | 表示输出 Tensor 的数据类型。 |
| non_blocking | - | 控制 cpu 和 gpu 数据的异步复制,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |
| copy | - | 表示是否复制,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |
| non_blocking | blocking | 控制 cpu 和 gpu 数据的异步复制,取值相反,需要转写。 |
| copy | - | 表示是否复制,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |
| memory_format | - | 表示内存格式,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |

### 转写示例

#### non_blocking: cpu 和 gpu 数据的异步复制

``` python
# Pytorch 写法
x = torch.tensor([1, 2, 3])
x.to(dtype, non_blocking=True)

# Paddle 写法
x= paddle.to_tensor([1, 2, 3])
x.to(dtype, blocking=False)
```

---

### [torch.Tensor.to](https://pytorch.org/docs/stable/generated/torch.Tensor.to.html#torch.Tensor.to)
Expand All @@ -31,10 +45,10 @@ Pytorch 相比 Paddle 支持更多其他参数,具体如下:
torch.Tensor.to(device=None, dtype=None, non_blocking=False, copy=False, memory_format=torch.preserve_format)
```

### [paddle.Tensor.cast](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#cast-dtype)
### [paddle.Tensor.to](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#to-args-kwargs)

```python
paddle.Tensor.cast(dtype)
paddle.Tensor.to(device, dtype=None, blocking=True)
```

Pytorch 相比 Paddle 支持更多其他参数,具体如下:
Expand All @@ -43,23 +57,24 @@ Pytorch 相比 Paddle 支持更多其他参数,具体如下:

| PyTorch | PaddlePaddle | 备注 |
| ------------- | ------------ | ----------------------------------------------------------------------- |
| device | - | 表示 Tensor 存放设备位置,Paddle 无此参数,需要转写。 |
| device | device | 表示 Tensor 存放设备位置。 |
| dtype | dtype | 表示输出 Tensor 的数据类型。 |
| non_blocking | - | 控制 cpu 和 gpu 数据的异步复制,Paddle 无此参数,暂无转写方式。 |
| copy | - | 表示是否复制,Paddle 无此参数,暂无转写方式。 |
| non_blocking | blocking | 控制 cpu 和 gpu 数据的异步复制,取值相反,需要转写。 |
| copy | - | 表示是否复制,Paddle 无此参数,暂无转写方式。 |
| memory_format | - | 表示内存格式,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |

### 转写示例

#### device: Tensor 的设备
#### non_blocking: cpu 和 gpu 数据的异步复制

```python
``` python
# Pytorch 写法
y = x.to(device=torch.device('cpu'), dtype=torch.float64)
x = torch.tensor([1, 2, 3])
x.to(device, dtype, non_blocking=True)

# Paddle 写法
y = x.cast(paddle.float64)
y.cpu()
x= paddle.to_tensor([1, 2, 3])
x.to(device, dtype, blocking=False)
```

---
Expand All @@ -70,21 +85,21 @@ y.cpu()
torch.Tensor.to(other, non_blocking=False, copy=False)
```

### [paddle.Tensor.cast](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#cast-dtype)
### [paddle.Tensor.to](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/Tensor_cn.html#to-args-kwargs)

```python
paddle.Tensor.cast(dtype)
paddle.Tensor.to(dtype)
```

Pytorch 相比 Paddle 支持更多其他参数,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------------ | ------------ | --------------------------------------------------------- |
| PyTorch | PaddlePaddle | 备注 |
| ------------ | ------------ | ----------------------------------------------------- |
| other | - | 表示参照 dtype 的 Tensor,Paddle 无此参数,需要转写。 |
| non_blocking | - | 控制 cpu 和 gpu 数据的异步复制,Paddle 无此参数,暂无转写方式。 |
| copy | - | 表示是否复制,Paddle 无此参数,暂无转写方式。 |
| non_blocking | blocking | 控制 cpu 和 gpu 数据的异步复制,取值相反,需要转写。 |
| copy | - | 表示是否复制,Paddle 无此参数,暂无转写方式。 |

### 转写示例

Expand All @@ -95,5 +110,15 @@ Pytorch 相比 Paddle 支持更多其他参数,具体如下:
y = x.to(x2)

# Paddle 写法
y = x.cast(x2.dtype)
y = x.to(x2.dtype)
```

#### non_blocking: cpu 和 gpu 数据的异步复制

``` python
# Pytorch 写法
y = x.to(x2, non_blocking=True)

# Paddle 写法
y = x.to(x2.dtype, blocking=False)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
## [ torch 参数更多 ]torch.linalg.householder_product

### [torch.linalg.householder_product](https://pytorch.org/docs/stable/generated/torch.linalg.householder_product.html#torch.linalg.householder_product)

```python
torch.linalg.householder_product(A, tau, *, out=None)
```

### [paddle.linalg.householder_product](https://github.com/PaddlePaddle/Paddle/blob/d6ea911bd1bfda5604807eeb18318e71b395ac58/python/paddle/tensor/linalg.py#L3744)

```python
paddle.linalg.householder_product(x, tau, name=None)
```

Pytorch 相比 Paddle 支持更多其他参数,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ---------------------------------------------- |
| A | x | 表示输入的 Tensor,仅参数名不一致。 |
| tau | tau | 表示输入的 Tensor。 |
| out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 |

### 转写示例

#### out 参数:输出的 Tensor

```python
# PyTorch 写法:
torch.linalg.householder_product(x, tau, out=y)

# Paddle 写法:
paddle.assign(paddle.linalg.householder_product(x, tau), y)
```
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
torch.nn.Module.type(dst_type)
```

### [paddle.nn.Layer.to](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/nn/Layer_cn.html#to-device-none-dtype-none-blocking-none)
### [paddle.nn.Layer.astype](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/nn/Layer_cn.html#astype-dtype-none)

```python
paddle.nn.Layer.to(dtype=None)
paddle.nn.Layer.astype(dtype=None)
```

两者参数用法不一致,具体如下:
Expand All @@ -31,5 +31,5 @@ module.type(dst_type=torch.float32)

# Paddle 写法:
module = paddle.nn.Layer()
module.to(dtype=paddle.float32)
module.astype(dtype=paddle.float32)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## [ 仅参数名不一致 ]torch.combinations

### [torch.combinations](https://pytorch.org/docs/stable/generated/torch.combinations.html#torch.combinations)

```python
torch.combinations(input, r=2, with_replacement=False)
```

### [paddle.combinations](https://github.com/PaddlePaddle/Paddle/blob/8932f1c5e26788ab1eed226e70fafb1ea67ce737/python/paddle/tensor/math.py#L7099)

```python
paddle.combinations(x, r=2, with_replacement=False, name=None)
```

两者功能一致,仅参数名不一致,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ---------------- | ---------------- | ----------------------------- |
| input | x | 输入 Tensor,仅参数名不一致。 |
| r | r | 需要合并元素数量。 |
| with_replacement | with_replacement | 是否允许合并中替换。 |
Original file line number Diff line number Diff line change
@@ -1,19 +1,35 @@
## [ 组合替代实现 ]torch.hypot
## [ torch 参数更多 ]torch.hypot

### [torch.hypot](https://pytorch.org/docs/stable/generated/torch.hypot.html#torch.hypot)

```python
torch.hypot(input, other, *, out=None)
```

给定直角三角形的直角边,求斜边; Paddle 无此 API,需要组合实现。
### [paddle.hypot](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/hypot_cn.html)

```python
paddle.hypot(x, y, name=None)
```

Pytorch 相比 Paddle 支持更多其他参数,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ---------------------------------------------- |
| input | x | 输入 Tensor,仅参数名不一致。 |
| other | y | 输入 Tensor,仅参数名不一致。 |
| out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 |

### 转写示例

#### out:指定输出

```python
# Pytorch 写法
y = torch.hypot(a, b)
torch.hypot(x, y, out=out)

# Paddle 写法
y = (a**2 + b**2) ** (1/2)
paddle.assign(paddle.hypot(x, y), out)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## [ 仅参数名不一致 ]torch.index_fill

### [torch.index_fill](https://pytorch.org/docs/stable/generated/torch.Tensor.index_fill.html#torch.Tensor.index_fill)

```python
torch.index_fill(input, dim, index, value)
```

### [paddle.index_fill](https://github.com/PaddlePaddle/Paddle/blob/1e3761d119643af19cb6f8a031a77f315d782409/python/paddle/tensor/manipulation.py#L5900)

```python
paddle.index_fill(x, index, axis, value, name=None)
```

两者功能一致且参数用法一致,仅参数名不一致,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ---------------------------------- |
| input | x | 输入的 Tensor,仅参数名不一致。 |
| dim | axis | 表示进行运算的轴,仅参数名不一致。 |
| index | index | 包含索引下标的 1-D Tensor。 |
| value | value | 填充的值。 |
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## [ 仅参数名不一致 ] torch.masked_fill

### [torch.masked_fill](https://pytorch.org/docs/stable/generated/torch.Tensor.masked_fill.html#torch.Tensor.masked_fill)

```python
torch.masked_fill(input, mask, value)
```

### [paddle.masked_fill](https://github.com/PaddlePaddle/Paddle/blob/1e3761d119643af19cb6f8a031a77f315d782409/python/paddle/tensor/manipulation.py#L5111)

```python
paddle.masked_fill(x, mask, value, name=None)
```

两者功能一致,参数完全一致,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------------------------------- |
| input | x | 输入的 Tensor,仅参数名不一致。 |
| mask | mask | 布尔张量,表示要填充的位置 |
| value | value | 用于填充目标张量的值 |
Loading

0 comments on commit 5e2ee33

Please sign in to comment.