Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

映射文档 No.64 - 78 #5915

Merged
merged 6 commits into from
Jun 20, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ paddle.nn.functional.gelu(x, approximate=False, name=None)

```python
# PyTorch 写法:
y = torch.nn.functional.gelu(x, approximate='tanh')
y1 = torch.nn.functional.gelu(x, approximate='tanh')
y2 = torch.nn.functional.gelu(x, approximate='none')

# Paddle 写法:
y = paddle.nn.functional.gelu(x, approximate=True)
y1 = paddle.nn.functional.gelu(x, approximate=True)
y2 = paddle.nn.functional.gelu(x, approximate=False)
```
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,37 @@ paddle.nn.InstanceNorm3D(num_features, epsilon=1e-05, momentum=0.9, weight_attr=
| num_features | num_features | 输入 Tensor 的通道数量。 |
| eps | epsilon | 为了数值稳定加在分母上的值,仅参数名不一致。 |
| momentum | momentum | 此值用于计算 moving_mean 和 moving_var。 |
| affine | - | 是否训练 affine 参数,Paddle 无此参数,暂无转写方式。 |
| affine | - | 是否进行仿射变换,Paddle 无此参数,需要进行转写。 |
| track_running_stats | - | 是否跟踪运行统计,Paddle 无此参数,暂无转写方式。 |
| device | - | 表示 Tensor 存放设备位置,Paddle 无此参数需要进行转写。 |
| dtype | - | 参数类型,Paddle 无此参数需要进行转写。 |
| device | - | 表示 Tensor 存放设备位置,Paddle 无此参数需要进行转写。 |
| dtype | - | 参数类型,Paddle 无此参数需要进行转写。 |
| - | weight_attr | 指定权重参数属性的对象,PyTorch 无此参数,Paddle 保持默认即可。 |
| - | bias_attr | 指定偏置参数属性的对象,PyTorch 无此参数,Paddle 保持默认即可。 |
| - | data_format | 指定输入数据格式,PyTorch 无此参数,Paddle 保持默认即可。 |

### 转写示例

#### affine:是否进行仿射变换

```python
# 当 PyTorch 的 affine 为`False`,表示 weight 和 bias 不进行更新,torch 写法
torch.nn.InstanceNorm3d(num_features, affine=False)

# paddle 写法
paddle.nn.InstanceNorm3d(num_features, weight_attr=False, bias_attr=False)

# 当 PyTorch 的 affine 为`True`,torch 写法
torch.nn.InstanceNorm3d(num_features, affine=True)

# paddle 写法
paddle.nn.InstanceNorm3d(num_features)
```

#### device 参数:表示 Tensor 存放设备位置

```python
# PyTorch 写法:
torch.nn.InstanceNorm3d(x, , device=torch.device('cpu'))
torch.nn.InstanceNorm3d(x, device=torch.device('cpu'))

# Paddle 写法:
y = paddle.nn.InstanceNorm3D(x)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,33 @@ paddle.nn.SimpleRNNCell(input_size, hidden_size, activation='tanh', weight_ih_at

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------------ | -------------- | --------------------------------------------------------- |
| input_size | input_size | 输入的大小。 |
| hidden_size | hidden_size | 隐藏状态大小。 |
| bias | - | 是否使用 blas 层权重,Paddle 无此参数,暂无转写方式。 |
| nonlinearity | activation | 简单循环神经网络单元的激活函数,仅参数名不一致。 |
| device | - | 表示 Tensor 存放设备位置,Paddle 无此参数,需要进行转写。 |
| dtype | - | 参数类型,Paddle 无此参数,需要进行转写。 |
| - | weight_ih_attr | weight_ih 的参数,PyTorch 无此参数,Paddle 保持默认即可。 |
| - | weight_hh_attr | weight_hh 的参数,PyTorch 无此参数,Paddle 保持默认即可。 |
| - | bias_ih_attr | bias_ih 的参数,PyTorch 无此参数,Paddle 保持默认即可。 |
| - | bias_hh_attr | bias_hh 的参数,PyTorch 无此参数,Paddle 保持默认即可。 |
| PyTorch | PaddlePaddle | 备注 |
| ------------ | -------------------------- | ------------------------------------------------------------------------------ |
| input_size | input_size | 输入的大小。 |
| hidden_size | hidden_size | 隐藏状态大小。 |
| bias | bias_ih_attr, bias_hh_attr | 是否使用 blas 层权重,Paddle 使用 bias_ih_attr 和 bias_hh_attr,需要进行转写。 |
| nonlinearity | activation | 简单循环神经网络单元的激活函数,仅参数名不一致。 |
| device | - | 表示 Tensor 存放设备位置,Paddle 无此参数,需要进行转写。 |
| dtype | - | 参数类型,Paddle 无此参数,需要进行转写。 |
| - | weight_ih_attr | weight_ih 的参数,PyTorch 无此参数,Paddle 保持默认即可。 |
| - | weight_hh_attr | weight_hh 的参数,PyTorch 无此参数,Paddle 保持默认即可。 |

### 转写示例

#### bias:是否使用 bias

```python
# Pytorch 写法
m1 = torch.nn.RNNCell(input_size, hidden_size,bias=True)
m2 = torch.nn.RNNCell(input_size, hidden_size,bias=False)

# Paddle 写法
m1 = paddle.nn.SimpleRNNCell(input_size, hidden_size,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个写法不是bias_ih_attr=False 吗

bias_ih_attr=paddle.ParamAttr(learning_rate=0.0),
bias_hh_attr=paddle.ParamAttr(learning_rate=0.0))
m2 = paddle.nn.SimpleRNNCell(input_size, hidden_size, bias_ih_attr=None, bias_hh_attr=None)
```

#### device 参数:表示 Tensor 存放设备位置

```python
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## [参数名不一致]torch.nn.Sequential
## [参数用法不一致]torch.nn.Sequential
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

分类可以算 参数不一致

具体的用法不一致可以写到下面


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

Expand All @@ -12,10 +12,10 @@ torch.nn.Sequential(arg: OrderedDict[str, Module])
paddle.nn.Sequential(*layers)
```

其中功能一致, 仅参数名不一致,具体如下:
其中功能一致, 参数用法不一致,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | --------------------------------------------------- |
| arg | layers | Layers 或可迭代的 name Layer 对,仅参数名不一致。 |
| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------------------------------------------------------------------------------------------ |
| arg | layers | Paddle 支持 Layers 或可迭代的 name Layer 对,PyTorch 支持类型更多,包含 OrderedDict 类型。 |
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ paddle.linalg.triangular_solve(x, y, upper=True, transpose=False, unitriangular=

| PyTorch | PaddlePaddle | 备注 |
| ------------- | ------------- | ----------------------------------------------------------- |
| b | x | 线性方程组左边的系数方阵,仅参数名不一致。 |
| A | y | 线性方程组右边的矩阵,仅参数名不一致。 |
| A | x | 线性方程组左边的系数方阵,仅参数名不一致。 |
| b | y | 线性方程组右边的矩阵,仅参数名不一致。 |
| upper | upper | 对系数矩阵 x 取上三角还是下三角。 |
| transpose | transpose | 是否对系数矩阵 x 进行转置。 |
| unitriangular | unitriangular | 如果为 True,则将系数矩阵 x 对角线元素假设为 1 来求解方程。 |
Expand All @@ -31,7 +31,7 @@ paddle.linalg.triangular_solve(x, y, upper=True, transpose=False, unitriangular=

```python
# PyTorch 写法:
torch.triangular_solve(x1, x2, out=y)
torch.triangular_solve(x2, x1, out=y)

# Paddle 写法:
paddle.assign(paddle.linalg.triangular_solve(x1, x2), y)
Expand Down