Skip to content

Commit

Permalink
映射文档 No.61 (#5902)
Browse files Browse the repository at this point in the history
* Add pytorch diff docs for group 61

* Fix

* Fix

* Fix
  • Loading branch information
co63oc authored Jun 6, 2023
1 parent 7b7c2a0 commit 4dce215
Show file tree
Hide file tree
Showing 8 changed files with 219 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## [torch 参数更多]torch.Tensor.quantile

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

```python
torch.Tensor.quantile(q, dim=None, keepdim=False, *, interpolation='linear')
```

### [paddle.Tensor.quantile](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#quantile-q-axis-none-keepdim-false-name-none)

```python
paddle.Tensor.quantile(q, axis=None, keepdim=False, name=None)
```

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

### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------------------------ |
| q | q |待计算的分位数。 |
| dim | axis |指定对 x 进行计算的轴,仅参数名不一致。|
| keepdim | keepdim |是否在输出 Tensor 中保留减小的维度。|
| interpolation | - |两个数据点的插补取值方法,Paddle 无此参数,暂无转写方式。|
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
## [torch 参数更多]torch.Tensor.round

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

```python
torch.Tensor.round(decimals=0)
```

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

```python
paddle.Tensor.round(name=None)
```

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

### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| -------- | ------- | ------- |
| decimals | - | 舍入小数位数 |

### 转写示例
#### decimals:要舍入到的小数位数
```python
# Pytorch 写法
torch.tensor([3.345, 5.774]).round(decimals=2)

# Paddle 写法
(paddle.to_tensor([3.345, 5.774]) * 1e2).round() / 1e2

# 注:Paddle 可使用 10 的 decimals 次方来实现
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
## [torch 参数更多]torch.Tensor.round_

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

```python
torch.Tensor.round_(decimals=0)
```

### [paddle.Tensor.round_](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#round-name-none)

```python
paddle.Tensor.round_(name=None)
```

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

### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| -------- | ------- | ------- |
| decimals | - | 舍入小数位数 |

### 转写示例
#### decimals:要舍入到的小数位数
```python
# Pytorch 写法
torch.tensor([3.345, 5.774]).round_(decimals=2)

# Paddle 写法
(paddle.to_tensor([3.345, 5.774]) * 1e2).round_() / 1e2

# 注:Paddle 可使用 10 的 decimals 次方来实现
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## [仅 paddle 参数更多]torch.Tensor.scatter

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

```python
torch.Tensor.scatter(dim, index, src)
```

### [paddle.Tensor.put_along_axis](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#put-along-axis-arr-index-value-axis-reduce-assign)

```python
paddle.Tensor.put_along_axis(index, value, axis, reduce="assign")

```

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

### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------- |
| dim | axis | 表示在哪一个维度 scatter ,仅参数名不一致。 |
| index | index | 表示输入的索引张量,仅参数名不一致。 |
| src | value | 表示需要插入的值,仅参数名不一致。 |
| - | reduce | 归约操作类型,PyTorch 无此参数, Paddle 保持默认即可。 |
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## [组合替代实现]torch.Tensor.scatter_add

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

```python
torch.Tensor.scatter_add(dim, index, src)
```

Paddle 无此 API,需要组合实现。

### 转写示例

```python
# Pytorch 写法
x.scatter_add(dim, index, src)

# Paddle 写法
x2 = paddle.zeros(x.shape)
y = x + x2.put_along_axis(index, value, axis)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## [torch 参数更多]torch.Tensor.short

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

```python
torch.Tensor.short(memory_format=torch.preserve_format)
```

### [paddle.Tensor.astype](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/Tensor_cn.html#put-along-axis-arr-index-value-axis-reduce-assign)

```python
paddle.Tensor.astype('int16')
```

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

### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| ------- | ------- | ------- |
| memory_format | - |表示内存格式,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
## [torch 参数更多]torch.Tensor.size

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

```python
torch.Tensor.size(dim=None)
```

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

```python
paddle.Tensor.shape
```

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

### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------- |
| dim | - | 表示获取大小的轴,Paddle 无此参数,需要进行转写。 |

### 转写示例

```python
# Pytorch 写法
torch.tensor([-1, -2, 3]).size(0)

# Paddle 写法
paddle.to_tensor([-0.4, -0.2, 0.1, 0.3]).shape[0]
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## [torch 参数更多]torch.Tensor.stft

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

```python
torch.Tensor.stft(n_fft, hop_length=None, win_length=None, window=None, center=True, pad_mode='reflect', normalized=False, onesided=None, return_complex=None)
```

### [paddle.signal.stft](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/signal/stft_cn.html)

```python
paddle.signal.stft(x, n_fft, hop_length=None, win_length=None, window=None, center=True, pad_mode='reflect', normalized=False, onesided=True, name=None)
```

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

### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| ---------- | ------------ | ------- |
| n_fft | n_fft | 离散傅里叶变换的样本点个数。 |
| hop_length | hop_length | 对输入分帧时,相邻两帧偏移的样本点个数。 |
| win_length | win_length | 信号窗的长度。 |
| window | window | 维度为 1D 长度为 win_length 的 Tensor。 |
| center | center | 选择是否将输入信号进行补长。 |
| pad_mode | pad_mode | 当 center 为 True 时,确定 padding 的模式。 |
| normalized | normalized | 是否将傅里叶变换的结果乘以值为 1/sqrt(n) 的缩放系数。 |
| onesided | onesided | 当输入为实信号时,选择是否只返回傅里叶变换结果的一半的频点值。 |
| return_complex | - | 表示当输入为复数时,是否以复数形式返回,还是将实部与虚部分开以实数形式返回。Paddle 目前只支持返回复数,分开返回实部与虚部的情况,需要使用 as_real 进行转写。 |

### 转写示例
#### return_complex:是否返回复数
```python
# Pytorch 写法
y = torch.rand(512,512).stft(n_fft=512, return_complex=False)

# Paddle 写法
y = paddle.as_real(paddle.signal.stft(paddle.rand((512,512)), n_fft=512))
```

0 comments on commit 4dce215

Please sign in to comment.