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

【Hackathon 5th No.44】API转换 42-61 -part #6288

Merged
merged 5 commits into from
Nov 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
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
@@ -1,9 +1,9 @@
## [仅参数名不一致]torch.cholesky_solve
## [参数不一致]torch.Tensor.cholesky_solve

### [torch.cholesky_solve](https://pytorch.org/docs/stable/generated/torch.cholesky_solve.html?highlight=cholesky#torch.cholesky_solve)
### [torch.Tensor.cholesky_solve](https://pytorch.org/docs/stable/generated/torch.Tensor.cholesky_solve.html#torch-tensor-cholesky-solve)

```python
torch.cholesky_solve(input,input2,upper=False,*,out=None)
torch.Tensor.cholesky_solve(input2,upper=False)
```

### [paddle.linalg.cholesky_solve](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/cholesky_solve_cn.html#cholesky-solve)
Expand All @@ -12,11 +12,19 @@ torch.cholesky_solve(input,input2,upper=False,*,out=None)
paddle.linalg.cholesky_solve(x,y,upper=False,name=None)
```

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

### 参数映射
|PyTorch|PaddlePaddle|备注|
| ------- | ------- | ------- |
|input|x|表示线性方程中的 B 矩阵。仅参数名不一致|
|input2|y|表示线性方程中 A 矩阵的 Cholesky 分解矩阵 u。仅参数名不一致|
|upper|upper|表示输入 x 是否是上三角矩阵,True 为上三角矩阵,False 为下三角矩阵。仅参数名不一致|
| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | -------------------------------------------------------------------------- |
| - | x | 表示线性方程中 B 矩阵,Pytorch 中为当前 Tensor。参数用法不一致,需要转写。 |
| input2 | y | 表示线性方程中 A 矩阵的 Cholesky 分解矩阵 u。仅参数名不一致。 |
| upper | upper | 表示输入 x 是否是上三角矩阵,True 为上三角矩阵,False 为下三角矩阵。 |

### 转写示例
# torch 写法
x.cholesky_solve(y)

# paddle 写法
paddle.linalg.cholesky_solve(x, y)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## [组合替代实现]torch.Tensor.float_power

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

```python
torch.Tensor.float_power(exponent)
```

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

### 转写示例

```python
# Pytorch 写法
y = x.float_power(2)

# Paddle 写法
y = x.cast(paddle.float64).pow(2)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## [组合替代实现]torch.Tensor.float_power_

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

```python
torch.Tensor.float_power_(exponent)
```

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

### 转写示例

```python
# Pytorch 写法
y = x.float_power_(2)

# Paddle 写法
y = x.cast_(paddle.float64).pow_(2)
```
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@
### [torch.Tensor.symeig](https://pytorch.org/docs/stable/generated/torch.Tensor.symeig.html#torch.Tensor.symeig)

```python
# pytorch1.9 以上版本不支持
torch.Tensor.symeig(eigenvectors=False, upper=True)
```

### [paddle.linalg.eigh](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/eigh_cn.html)

```python
# eigenvectors 为 True
paddle.linalg.eigh(x, UPLO='L', name=None)

# eigenvectors 为 False
paddle.linalg.eigvalsh(x, UPLO='L', name=None)
```

Pytorch 相比 Paddle 支持更多其他参数,具体如下:
Expand All @@ -19,11 +24,26 @@ Pytorch 相比 Paddle 支持更多其他参数,具体如下:
| PyTorch | PaddlePaddle | 备注 |
| ------------ | ------------ | ------------------------------------------------------------ |
| - | x | 表示输入的 Tensor 。 |
| eigenvectors | - | 表示是否计算 eigenvectors,Paddle 无此参数,暂无转写方式。 |
| eigenvectors | - | 表示是否计算 eigenvectors,Paddle 无此参数,需要转写。 |
| upper | UPLO | 表示计算上三角或者下三角矩阵,PyTorch 取值 bool 类型,Paddle 取值 L, U。 |

### 转写示例

#### eigenvectors:表示是否计算特征向量
```python
# Pytorch 写法,eigenvectors 为 False
e, _ = x.symeig(eigenvectors=False)

# Paddle 写法
e = paddle.linalg.eigvalsh(x)

# Pytorch 写法,eigenvectors 为 True
e, v = x.symeig(eigenvectors=True)

# Paddle 写法
e, v = paddle.linalg.eigh(x)
```

#### upper:表示计算上三角或者下三角矩阵
```python
# Pytorch 写法
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## [仅参数名不一致]torch.Tensor.triangular_solve
## [参数不一致]torch.Tensor.triangular_solve

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,29 @@
### [torch.linalg.eig](https://pytorch.org/docs/stable/generated/torch.linalg.eig.html?highlight=torch+linalg+eig#torch.linalg.eig)

```python
torch.linalg.eig(A,
out=None)
torch.linalg.eig(input, *, out=None)
co63oc marked this conversation as resolved.
Show resolved Hide resolved
```

### [paddle.linalg.eig](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/eig_cn.html)

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

Pytorch 相比 Paddle 支持更多其他参数,具体如下:
### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| ------------- | ------------ | ------------------------------------------------------ |
| A | x | 表示输入的 Tensor ,仅参数名不一致。 |
| out | - | 表示输出的 tuple, Paddle 无此参数,需要转写。 |
| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ----------------------------------------------- |
| input | x | 表示输入的 Tensor,仅参数名不一致。 |
| out | - | 表示输出的 tuple,Paddle 无此参数,需要转写。 |

### 转写示例

#### out:指定输出

```python
# Pytorch 写法
torch.linalg.eig(t,out=(L,V))
torch.linalg.eig(t, out=(L,V))

# Paddle 写法
L,V=paddle.linalg.eig(t)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
### [torch.linalg.eigh](https://pytorch.org/docs/stable/generated/torch.linalg.eigh.html#torch.linalg.eigh)

```python
torch.linalg.eigh(A, UPLO='L', *, out=None)
torch.linalg.eigh(input, UPLO='L', *, out=None)
co63oc marked this conversation as resolved.
Show resolved Hide resolved
```

### [paddle.linalg.eigh](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/eigh_cn.html)
Expand All @@ -16,10 +16,10 @@ Pytorch 相比 Paddle 支持更多其他参数,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ---------------------------------------------------- |
| A | x | 输入 Tensor,仅参数名不一致。 |
| UPLO | UPLO | 表示计算上三角或者下三角矩阵 |
| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------------------------------------------------ |
| input | x | 输入 Tensor,仅参数名不一致。 |
| UPLO | UPLO | 表示计算上三角或者下三角矩阵 |
| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 |

### 转写示例
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
## [torch 参数更多]torch.linalg.matrix_norm

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

```python
torch.linalg.matrix_norm(input, ord='fro', dim=(-2, -1), keepdim=False, *, dtype=None, out=None)
```

### [paddle.linalg.norm](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/norm_cn.html)

```python
paddle.linalg.norm(x, p='fro', axis=None, keepdim=False, name=None)
```

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

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------------------------------------------------------------------------------- |
| input | x | 输入 Tensor,仅参数名不一致。 |
| ord | p | 范数的种类。参数不一致。Pytorch 支持负实数的范数,Paddle 不支持,暂无转写方式。 |
| dim | axis | 使用范数计算的轴 ,仅参数名不一致。 |
| keepdim | keepdim | 是否在输出的 Tensor 中保留和输入一样的维度。 |
| dtype | - | 表示输出 Tensor 的数据类型, Paddle 无此参数,需要转写。 |
| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 |

### 转写示例

#### out:指定输出

```python
# Pytorch 写法
torch.linalg.matrix_norm(x, out=y)

# Paddle 写法
paddle.assign(paddle.linalg.norm(x), y)
```

#### dtype:表示输出 Tensor 的数据类型

```python
# Pytorch 写法
torch.linalg.matrix_norm(x, dtype=torch.float64)

# Paddle 写法
paddle.linalg.norm(x.astype(paddle.float64))
```
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
### [torch.linalg.pinv](https://pytorch.org/docs/stable/generated/torch.linalg.pinv.html#torch.linalg.pinv)

```python
torch.linalg.pinv(A, *, atol=None, rtol=None, hermitian=False, out=None)
torch.linalg.pinv(input, *, atol=None, rtol=None, hermitian=False, out=None)
co63oc marked this conversation as resolved.
Show resolved Hide resolved
```

### [paddle.linalg.pinv](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/pinv_cn.html)
Expand All @@ -16,13 +16,13 @@ Pytorch 相比 Paddle 支持更多其他参数,具体如下:

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| --------- | ------------ | -------------------------------------------------- |
| A | x | 输入 Tensor,仅参数名不一致。 |
| atol | - | 绝对阈值,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |
| rtol | rcond | 奇异值(特征值)被截断的阈值,仅参数名不一致。 |
| hermitian | hermitian | 是否为 hermitian 矩阵或者实对称矩阵。 |
| out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 |
| PyTorch | PaddlePaddle | 备注 |
| --------- | ------------ | ------------------------------------------------------------------- |
| input | x | 输入 Tensor,仅参数名不一致。 |
| atol | - | 绝对阈值,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |
| rtol | rcond | 奇异值(特征值)被截断的阈值,仅参数名不一致。 |
| hermitian | hermitian | 是否为 hermitian 矩阵或者实对称矩阵。 |
| out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 |

### 转写示例

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
## [ 仅参数默认值不一致 ] torch.linalg.svd
## [ torch 参数更多 ] torch.linalg.svd

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

```python
torch.linalg.svd(A, full_matrices=True)
torch.linalg.svd(A, full_matrices=True, *, driver=None, out=None)
```

### [paddle.linalg.svd](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/svd_cn.html)
Expand All @@ -12,10 +12,24 @@ torch.linalg.svd(A, full_matrices=True)
paddle.linalg.svd(x, full_matrices=False, name=None)
```

两者功能一致且参数用法一致,仅参数默认值不一致,具体如下:
Pytorch 相比 Paddle 支持更多其他参数,具体如下:

### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| ------------- | ------------ | ------------------------------------------------------ |
| A | x | 输入 Tensor,仅参数名不一致。 |
| full_matrices | full_matrices | 是否计算完整的 U 和 V 矩阵,Pytorch 为 True,Paddle 为 False,Paddle 需设置为与 Pytorch 一致。 |
| PyTorch | PaddlePaddle | 备注 |
| ------------- | ------------- | ---------------------------------------------------------------------------------------------- |
| A | x | 输入 Tensor,仅参数名不一致。 |
| full_matrices | full_matrices | 是否计算完整的 U 和 V 矩阵,Pytorch 为 True,Paddle 为 False,Paddle 需设置为与 Pytorch 一致。 |
| driver | - | cuSOLVER 方法名,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 |
| out | - | 表示输出的 Tensor,Paddle 无此参数,需要转写。 |

### 转写示例

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

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

# Paddle 写法:
paddle.assign(paddle.linalg.svd(x), y)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
## [torch 参数更多]torch.linalg.vector_norm

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

```python
torch.linalg.vector_norm(x, ord=2, dim=None, keepdim=False, *, dtype=None, out=None)
```

### [paddle.linalg.norm](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/linalg/norm_cn.html)

```python
paddle.linalg.norm(x, p='fro', axis=None, keepdim=False, name=None)
```

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

### 参数映射

| PyTorch | PaddlePaddle | 备注 |
| ------- | ------------ | ------------------------------------------------------------------------------- |
| x | x | 输入 Tensor。 |
| ord | p | 范数的种类。参数不一致。Pytorch 支持负实数的范数,Paddle 不支持,暂无转写方式。 |
| dim | axis | 使用范数计算的轴 ,仅参数名不一致。 |
| keepdim | keepdim | 是否在输出的 Tensor 中保留和输入一样的维度。 |
| dtype | - | 表示输出 Tensor 的数据类型, Paddle 无此参数,需要转写。 |
| out | - | 表示输出的 Tensor , Paddle 无此参数,需要转写。 |

### 转写示例

#### out:指定输出

```python
# Pytorch 写法
torch.linalg.vector_norm(x, out=y)

# Paddle 写法
paddle.assign(paddle.linalg.norm(x), y)
```

#### dtype:表示输出 Tensor 的数据类型

```python
# Pytorch 写法
torch.linalg.vector_norm(x, dtype=torch.float64)

# Paddle 写法
paddle.linalg.norm(x.astype(paddle.float64))
```
Loading