Skip to content

Commit

Permalink
【映射文档】add default_collate (PaddlePaddle#5996)
Browse files Browse the repository at this point in the history
* model_convert add torch.is_nonzero .etc

* model_convert add is_nonzero .etc

* model_convert add is_nonzero .etc

* model_convert add is_nonzero .etc

* add xlogy.etc

* add randn_like .etc

* comment

* add vdot etc.

* add aminmax etc.

* fix parameter

* add bucketizr etc.

* add bucketizr etc.

* add bucketizr etc.

* add sinc etc.

* add sinc etc.

* add sinc etc.

* add cov etc.

* add cov etc.

* add cov etc.

* add cov etc.

* add unique etc.

* add unique etc.

* add backward etc.

* add backward etc.

* modify get_cuda_rng_state to get_rng_state

* add scaler_tensor etc.

* add scaler_tensor etc.

* add scalar_tensor etc.

* add default_collate

* add default_collate
  • Loading branch information
zpceng314 authored Jul 3, 2023
1 parent 4be6bd6 commit 363cdb1
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ paddle.to_tensor(data,
| PyTorch | PaddlePaddle | 备注 |
| ------------- | ------------ | ------------------------------------------------------ |
| s | data | 表示输入的数据。 |
| dtype | dtype | 表示数据的类型。Paddle 应设置为 paddle.float32, 无需转写|
| dtype | dtype | 表示数据的类型。两者参数默认值不同,Paddle 应设置为 paddle.float32。 |
| layout | - | 数据布局格式,Paddle 无此参数。一般对训练结果影响不大,可直接删除。 |
| device | place | 表示 Tensor 存放设备位置,两者参数类型不相同,需要进行转写。 |
| requires_grad | stop_gradient | 表示是否计算梯度, 两者参数意义不相同,需要进行转写。Paddle 输入与 Pytorch 逻辑相反。 |
| requires_grad | stop_gradient | 表示是否计算梯度, 两者参数意义不相同,Paddle 输入与 Pytorch 逻辑相反。需要进行转写|
| pin_memeory | - | 表示是否使用锁页内存, Paddle 无此参数,需要进行转写。 Paddle 需要对结果使用 padlde.Tensor.pin_memory()。 |

### 转写示例
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ paddle.distributed.spawn(func, args=(), nprocs=- 1, join=True, daemon=False, **o
| args | args | 函数 func 的输入参数。 |
| nprocs | nprocs | 启动进程的数目。 与 Pytorch 默认值不同, Paddle 应设置为 `1`|
| join | join | 对所有启动的进程执行阻塞的 join,等待进程执行结束。 |
| start_method | - | 启动方式。 Pytorch 已弃用, Paddle 无此参数。可直接忽略|
| start_method | - | 启动方式。 Pytorch 已弃用, Paddle 无此参数。可直接删除|
| - | options | 其他初始化并行执行环境的配置选项。 Pytorch 无此参数, Paddle 保持默认即可。 |
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
## [ 参数不一致 ]torch.utils.data.default_collate
### [torch.utils.data.default_collate](https://pytorch.org/docs/stable/data.html?highlight=default_collate#torch.utils.data.default_collate)

```python
torch.utils.data.default_collate(batch)
```

### [paddle.io.dataloader.collate.default_collate_fn]

```python
paddle.io.dataloader.collate.default_collate_fn(batch)
```

返回参数类型不一致,需要转写。具体如下:
### 参数映射
| PyTorch | PaddlePaddle | 备注 |
| ------------- | ------------ | ------------------------------------------------------ |
| batch | batch | 输入的用于组 batch 的数据。 |
| 返回值 | 返回值 | 返回参数类型不一致,当 batch 的元素为 numpy.ndarray 或 number 时, Pytorch 默认返回 torch.tensor, Paddle 默认返回 numpy.ndarray。 |


### 转写示例
#### 当 batch 的元素为 numpy.ndarray 或 number 时
```python
# Pytorch 写法
y = torch.utils.data.default_collate(batch)

# Paddle 写法
y = paddle.to_tensor(paddle.io.dataloader.collate.default_collate_fn(batch))
```

#### 当 batch 的元素为字典且字典的 value 为 numpy.ndarray 或 number 时
```python
# Pytorch 写法
y = torch.utils.data.default_collate(batch)

# Paddle 写法
y = paddle.io.dataloader.collate.default_collate_fn(batch)
for k, v in y.items():
y[k] = paddle.to_tensor(v)
```

0 comments on commit 363cdb1

Please sign in to comment.