From 2cd79ee0c32042d20229f9d3bb64f8465b21edd3 Mon Sep 17 00:00:00 2001 From: co63oc Date: Tue, 13 Jun 2023 15:36:42 +0800 Subject: [PATCH 1/3] Add api_difference docs --- .../cuda/torch.cuda.get_rng_state.md | 34 ++++++++++ .../cuda/torch.cuda.get_rng_state_all.md | 33 ++++++++++ .../cuda/torch.cuda.set_rng_state.md | 37 +++++++++++ .../cuda/torch.cuda.set_rng_state_all.md | 35 +++++++++++ ...stributions.transforms.ComposeTransform.md | 22 +++++++ .../api_difference/nn/torch.nn.Hardswish.md | 21 +++++++ .../api_difference/nn/torch.nn.Hardtanh.md | 23 +++++++ .../api_difference/others/torch.jit.load.md | 37 +++++++++++ .../others/torch.onnx.export.md | 63 +++++++++++++++++++ .../others/torch.profiler.profile.md | 58 +++++++++++++++++ .../others/torch.profiler.schedule.md | 40 ++++++++++++ 11 files changed, 403 insertions(+) create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state_all.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state_all.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/distributions/torch.distributions.transforms.ComposeTransform.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/nn/torch.nn.Hardswish.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/nn/torch.nn.Hardtanh.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.onnx.export.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.profile.md create mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state.md new file mode 100644 index 00000000000..0a9b38f2696 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state.md @@ -0,0 +1,34 @@ +## [torch 参数更多]torch.cuda.get_rng_state + +### [torch.cuda.get_rng_state](https://pytorch.org/docs/1.13/generated/torch.cuda.get_rng_state.html#torch.cuda.get_rng_state) + +```python +torch.cuda.get_rng_state(device='cuda') +``` + +### [paddle.get_cuda_rng_state](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/get_cuda_rng_state_cn.html) + +```python +paddle.get_cuda_rng_state() +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------- | -------------- | -------------------------------------------------------------------------------------------------- | +| device | - | 返回随机数生成器状态的设备,Paddle 无此参数,暂无转写方式。 | +| Tensor | GeneratorState | 返回参数类型不一致, Pytorch 返回 torch.ByteTensor,Paddle 返回 GeneratorState 列表,需要进行转写。 | + +### 转写示例 + +#### 返回参数类型不同 + +```python +# PyTorch 写法 +x = torch.cuda.get_rng_state(device='cuda') + +# Paddle 写法 +x = paddle.get_cuda_rng_state() +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state_all.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state_all.md new file mode 100644 index 00000000000..9532740b499 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state_all.md @@ -0,0 +1,33 @@ +## [参数不一致]torch.cuda.get_rng_state_all + +### [torch.cuda.get_rng_state_all](https://pytorch.org/docs/1.13/generated/torch.cuda.get_rng_state_all.html#torch.cuda.get_rng_state_all) + +```python +torch.cuda.get_rng_state_all() +``` + +### [paddle.get_cuda_rng_state](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/get_cuda_rng_state_cn.html) + +```python +paddle.get_cuda_rng_state() +``` + +其中 Pytorch 与 Paddle 的返回参数类型不一致,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------- | -------------- | ---------------------------------------------------------------------------------------------- | +| Tensor | GeneratorState | 返回参数类型不一致, Pytorch 返回 torch.ByteTensor,Paddle 返回 GeneratorState 对象,需要进行转写。 | + +### 转写示例 + +#### 返回参数类型不同 + +```python +# PyTorch 写法 +x = torch.cuda.get_rng_state_all() + +# Paddle 写法 +x = paddle.get_cuda_rng_state() +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state.md new file mode 100644 index 00000000000..719ce2a43de --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state.md @@ -0,0 +1,37 @@ +## [torch 参数更多]torch.cuda.set_rng_state + +### [torch.cuda.set_rng_state](https://pytorch.org/docs/1.13/generated/torch.cuda.set_rng_state.html#torch.cuda.set_rng_state) + +```python +torch.cuda.set_rng_state(new_state, device='cuda') +``` + +### [paddle.set_cuda_rng_state](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/set_cuda_rng_state_cn.html) + +```python +paddle.set_cuda_rng_state(state_list) +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| --------- | ------------ | ------------------------------------------------------------------------------------------------ | +| new_state | - | 类型为 torch.ByteTensor,表示设备需要的状态,Paddle 无此参数,需要进行转写。 | +| device | - | 指定随机数生成器状态的设备,Paddle 无此参数,暂无转写方式。 | +| - | state_list | 类型为 GeneratorState 列表,需要设置的随机数生成器状态信息列表,PyTorch 无此参数,需要进行转写。 | + +### 转写示例 + +#### 参数类型不同 + +```python +# PyTorch 写法 +x = torch.cuda.get_rng_state(device='cuda') +torch.cuda.set_rng_state(x, device='cuda') + +# Paddle 写法 +x = paddle.get_cuda_rng_state() +paddle.set_cuda_rng_state(x) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state_all.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state_all.md new file mode 100644 index 00000000000..39e3b1dc2ab --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state_all.md @@ -0,0 +1,35 @@ +## [参数不一致]torch.cuda.set_rng_state_all + +### [torch.cuda.set_rng_state_all](https://pytorch.org/docs/1.13/generated/torch.cuda.set_rng_state_all.html#torch.cuda.set_rng_state_all) + +```python +torch.cuda.set_rng_state_all(new_states) +``` + +### [paddle.set_cuda_rng_state](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/set_cuda_rng_state_cn.html) + +```python +paddle.set_cuda_rng_state(state_list) +``` + +其中 Pytorch 与 Paddle 的参数类型不一致,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ---------- | ------------ | --------------------------------------------------------------------------------------------------------------- | +| new_states | state_list | 表示每个设备需要的状态,PyTorch 类型为 torch.ByteTensor 列表,Paddle 类型为 GeneratorState 列表,需要进行转写。 | + +### 转写示例 + +#### 参数类型不同 + +```python +# PyTorch 写法 +x = torch.cuda.get_rng_state_all() +torch.cuda.set_rng_state_all(x) + +# Paddle 写法 +x = paddle.get_cuda_rng_state() +paddle.set_cuda_rng_state(x) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/distributions/torch.distributions.transforms.ComposeTransform.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/distributions/torch.distributions.transforms.ComposeTransform.md new file mode 100644 index 00000000000..10fa11cffd5 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/distributions/torch.distributions.transforms.ComposeTransform.md @@ -0,0 +1,22 @@ +## [torch 参数更多]torch.distributions.transforms.ComposeTransform + +### [torch.distributions.transforms.ComposeTransform](https://pytorch.org/docs/1.13/distributions.html#torch.distributions.transforms.ComposeTransform) + +```python +torch.distributions.transforms.ComposeTransform(parts, cache_size=0) +``` + +### [paddle.distribution.ChainTransform](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/distribution/ChainTransform_cn.html) + +```python +paddle.distribution.ChainTransform(transforms) +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ---------- | ------------ | ------------------------------------------------ | +| parts | transforms | 输入的变换序列,仅参数名不一致。 | +| cache_size | - | 表示 cache 大小,Paddle 无此参数,暂无转写方式。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/nn/torch.nn.Hardswish.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/nn/torch.nn.Hardswish.md new file mode 100644 index 00000000000..a96e4bb10f9 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/nn/torch.nn.Hardswish.md @@ -0,0 +1,21 @@ +## [torch 参数更多]torch.nn.Hardswish + +### [torch.nn.Hardswish](https://pytorch.org/docs/1.13/generated/torch.nn.Hardswish.html#torch.nn.Hardswish) + +```python +torch.nn.Hardswish(inplace=False) +``` + +### [paddle.nn.Hardswish](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/nn/Hardswish_cn.html) + +```python +paddle.nn.Hardswish(name=None) +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------- | ------------ | ----------------------------------------------------------------------------------------------------------- | +| inplace | - | 在不更改变量的内存地址的情况下,直接修改变量的值,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/nn/torch.nn.Hardtanh.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/nn/torch.nn.Hardtanh.md new file mode 100644 index 00000000000..28897f947a9 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/nn/torch.nn.Hardtanh.md @@ -0,0 +1,23 @@ +## [torch 参数更多]torch.nn.Hardtanh + +### [torch.nn.Hardtanh](https://pytorch.org/docs/1.13/generated/torch.nn.Hardtanh.html#torch.nn.Hardtanh) + +```python +torch.nn.Hardtanh(min_val=- 1.0, max_val=1.0, inplace=False) +``` + +### [paddle.nn.Hardtanh](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/nn/Hardtanh_cn.html) + +```python +paddle.nn.Hardtanh(min=- 1.0, max=1.0, name=None) +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------- | ------------ | ----------------------------------------------------------------------------------------------------------- | +| min_val | min | Hardtanh 激活计算公式中的 min 值,仅参数名不一致。 | +| max_val | max | Hardtanh 激活计算公式中的 max 值,仅参数名不一致。 | +| inplace | - | 在不更改变量的内存地址的情况下,直接修改变量的值,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md new file mode 100644 index 00000000000..ace1c3a2942 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md @@ -0,0 +1,37 @@ +## [torch 参数更多]torch.jit.load + +### [torch.jit.load](https://pytorch.org/docs/1.13/generated/torch.jit.load.html#torch.jit.load) + +```python +torch.jit.load(f, map_location=None, _extra_files=None) +``` + +### [paddle.jit.load](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/jit/load_cn.html) + +```python +paddle.jit.load(path, **configs) +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------------- | ------------ | ------------------------------------------------------------ | +| f | - | 文件操作对象,Paddle 无此参数,暂无转写方式。 | +| map_location | - | 存储位置,Paddle 无此参数,暂无转写方式。 | +| \_extra_files | - | 额外加载的文件,Paddle 无此参数,暂无转写方式。 | +| - | path | 载入模型的路径前缀,PyTorch 无此参数,暂无转写方式。 | +| - | configs | 其他用于兼容的载入配置选项,PyTorch 无此参数,暂无转写方式。 | + +### 转写示例 + +#### 参数用法不同 + +```python +# PyTorch 写法: +torch.jit.load('scriptmodule.pt') + +# Paddle 写法: +paddle.jit.load('example_model/linear') +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.onnx.export.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.onnx.export.md new file mode 100644 index 00000000000..35b5c82f29a --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.onnx.export.md @@ -0,0 +1,63 @@ +## [torch 参数更多]torch.onnx.export + +### [torch.onnx.export](https://pytorch.org/docs/1.13/onnx.html#torch.onnx.export) + +```python +torch.onnx.export(model, args, f, export_params=True, verbose=False, training=, input_names=None, output_names=None, operator_export_type=, opset_version=None, do_constant_folding=True, dynamic_axes=None, keep_initializers_as_inputs=None, custom_opsets=None, export_modules_as_functions=False) +``` + +### [paddle.onnx.export](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/onnx/export_cn.html) + +```python +paddle.onnx.export(layer, path, input_spec=None, opset_version=9, **configs) +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| --------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| model | layer | 导出的模型,PyTorch 类型为 torch.nn.Module, torch.jit.ScriptModule 或 torch.jit.ScriptFunction,Paddle 为 Layer 对象,需要进行转写。 | +| args | - | 模型参数,Paddle 无此参数,暂无转写方式。 | +| f | path | PyTorch 为存储模型路径,Paddle 为存储模型的路径前缀,需要进行转写。 | +| export_params | - | 是否导出参数,Paddle 无此参数,暂无转写方式。 | +| verbose | - | 是否输出详细信息,Paddle 无此参数,暂无转写方式。 | +| training | - | 训练模式,Paddle 无此参数,暂无转写方式。 | +| input_names | - | 输入节点名称列表,Paddle 无此参数,暂无转写方式。 | +| output_names | - | 输出节点名称列表,Paddle 无此参数,暂无转写方式。 | +| operator_export_type | - | 操作导出类型,Paddle 无此参数,暂无转写方式。 | +| opset_version | opset_version | opset 版本。 | +| do_constant_folding | - | 是否进行 constant-folding 优化,Paddle 无此参数,暂无转写方式。 | +| dynamic_axes | - | 是否动态维度,Paddle 无此参数,暂无转写方式。 | +| keep_initializers_as_inputs | - | 是否增加初始化器到输入,Paddle 无此参数,暂无转写方式。 | +| custom_opsets | - | 自定义 opset,Paddle 无此参数,暂无转写方式。 | +| export_modules_as_functions | - | 是否导出模型为 functions,Paddle 无此参数,暂无转写方式。 | +| - | input_spec | 描述存储模型 forward 方法的输入,PyTorch 无此参数,Paddle 保持默认即可。 | +| - | configs | 其他用于兼容的存储配置选项,PyTorch 无此参数,Paddle 保持默认即可。 | + +### 转写示例 + +#### 参数类型不同 + +```python +# PyTorch 写法 +torch.onnx.export( + model, + ( + x, + {y: z}, + {} + ), + "test.onnx.pb" +) + +# Paddle 写法 +model = Logic() +x = paddle.to_tensor([1]) +y = paddle.to_tensor([2]) +# Static and run model. +paddle.jit.to_static(model) +out = model(x, y, z=True) +paddle.onnx.export(model, 'pruned', input_spec=[x], output_spec=[out]) +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.profile.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.profile.md new file mode 100644 index 00000000000..b0a9d885bb9 --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.profile.md @@ -0,0 +1,58 @@ +## [torch 参数更多]torch.profiler.profile + +### [torch.profiler.profile](https://pytorch.org/docs/1.13/profiler.html#torch.profiler.profile) + +```python +torch.profiler.profile(*, activities=None, schedule=None, on_trace_ready=None, record_shapes=False, profile_memory=False, with_stack=False, with_flops=False, with_modules=False, experimental_config=None, use_cuda=None) +``` + +### [paddle.profiler.Profiler](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/profiler/Profiler_cn.html) + +```python +paddle.profiler.Profiler(*, targets=None, scheduler=None, on_trace_ready=None, record_shapes=False, profile_memory=False, timer_only=False) +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| activities | targets | 指定性能分析所要分析的设备,PyTorch 为 torch.profiler.ProfilerActivity 类型,Paddle 为 paddle.profiler.ProfilerTarget 类型。 | +| schedule | scheduler | 如果是 Callable 对象,代表是性能分析器状态的调度器,仅参数名不一致。 | +| on_trace_ready | on_trace_ready | 处理性能分析器的回调函数。 | +| record_shapes | record_shapes | 如果设置为 True, 则会开启收集框架算子输入张量的 shape。 | +| profile_memory | profile_memory | 如果设置为 True, 则会开启收集显存分析的数据。 | +| with_stack | - | 记录 source 信息,Paddle 无此参数,暂无转写方式。 | +| with_flops | - | 使用公式来估计浮点计算,Paddle 无此参数,暂无转写方式。 | +| with_modules | - | 记录模块层次,Paddle 无此参数,暂无转写方式。 | +| experimental_config | - | 实验性特征配置,Paddle 无此参数,暂无转写方式。 | +| use_cuda | - | 已废弃,Paddle 无此参数,暂无转写方式。 | +| - | timer_only | 如果设置为 True,将只统计模型的数据读取和每一个迭代所消耗的时间,而不进行性能分析,PyTorch 无此参数,Paddle 保持默认即可。 | + +### 转写示例 + +#### 参数类型不同 + +```python +# PyTorch 写法: +with torch.profiler.profile( + activities=[ + torch.profiler.ProfilerActivity.CPU, + torch.profiler.ProfilerActivity.CUDA, + ] +) as p: + code_to_profile() +print(p.key_averages().table( + sort_by="self_cuda_time_total", row_limit=-1)) + +# Paddle 写法: + import paddle.profiler as profiler + with profiler.Profiler( + targets=[profiler.ProfilerTarget.CPU, profiler.ProfilerTarget.GPU], + scheduler = (2, 5), + on_trace_ready = profiler.export_chrome_tracing('./log')) as p: + for iter in range(10): + #train() + p.step() +``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md new file mode 100644 index 00000000000..a4087548d9c --- /dev/null +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md @@ -0,0 +1,40 @@ +## [torch 参数更多]torch.profiler.schedule + +### [torch.profiler.schedule](https://pytorch.org/docs/1.13/profiler.html#torch.profiler.schedule) + +```python +torch.profiler.schedule(*, wait, warmup, active, repeat=0, skip_first=0) +``` + +### [paddle.profiler.make_scheduler](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/profiler/make_scheduler_cn.html) + +```python +paddle.profiler.make_scheduler(*, closed, ready, record, repeat=0, skip_first=0) +``` + +其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: + +### 参数映射 + +| PyTorch | PaddlePaddle | 备注 | +| ---------- | ------------ | ---------------------------------------------------------------------------- | +| wait | - | 处于 wait 状态的 step 数量,Paddle 无此参数,暂无转写方式。 | +| warmup | - | 处于 warmup 状态的 step 数量,Paddle 无此参数,暂无转写方式。 | +| active | - | 处于 active 状态的 step 数量,Paddle 无此参数,暂无转写方式。 | +| repeat | repeat | 重复次数。 | +| skip_first | skip_first | 首次 skip 步骤数量。 | +| - | closed | 处于 ProfilerState.CLOSED 状态的 step 数量,PyTorch 无此参数,暂无转写方式。 | +| - | ready | 处于 ProfilerState.READY 状态的 step 数量,PyTorch 无此参数,暂无转写方式。 | +| - | record | 处于 ProfilerState.RECORD 状态的 step 数量,PyTorch 无此参数,暂无转写方式。 | + +### 转写示例 + +#### 参数用法不同 + +```python +# PyTorch 写法: +torch.profiler.schedule(wait=1, warmup=1, active=2, repeat=1) + +# Paddle 写法: +paddle.profiler.make_scheduler(closed=1, ready=1, record=2, repeat=1) +``` From 9dc93d64ef205a6fc56f9cffd1c0b5bbbc013a18 Mon Sep 17 00:00:00 2001 From: co63oc Date: Thu, 29 Jun 2023 15:44:33 +0800 Subject: [PATCH 2/3] Fix --- .../cuda/torch.cuda.get_rng_state.md | 34 ----------------- .../cuda/torch.cuda.get_rng_state_all.md | 17 +++++---- .../cuda/torch.cuda.set_rng_state.md | 37 ------------------- .../cuda/torch.cuda.set_rng_state_all.md | 11 +++--- ...stributions.transforms.ComposeTransform.md | 8 ++-- .../api_difference/others/torch.jit.load.md | 14 +++---- .../others/torch.profiler.profile.md | 30 +++++++++------ .../others/torch.profiler.schedule.md | 33 +++++------------ 8 files changed, 53 insertions(+), 131 deletions(-) delete mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state.md delete mode 100644 docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state.md diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state.md deleted file mode 100644 index 0a9b38f2696..00000000000 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state.md +++ /dev/null @@ -1,34 +0,0 @@ -## [torch 参数更多]torch.cuda.get_rng_state - -### [torch.cuda.get_rng_state](https://pytorch.org/docs/1.13/generated/torch.cuda.get_rng_state.html#torch.cuda.get_rng_state) - -```python -torch.cuda.get_rng_state(device='cuda') -``` - -### [paddle.get_cuda_rng_state](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/get_cuda_rng_state_cn.html) - -```python -paddle.get_cuda_rng_state() -``` - -其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: - -### 参数映射 - -| PyTorch | PaddlePaddle | 备注 | -| ------- | -------------- | -------------------------------------------------------------------------------------------------- | -| device | - | 返回随机数生成器状态的设备,Paddle 无此参数,暂无转写方式。 | -| Tensor | GeneratorState | 返回参数类型不一致, Pytorch 返回 torch.ByteTensor,Paddle 返回 GeneratorState 列表,需要进行转写。 | - -### 转写示例 - -#### 返回参数类型不同 - -```python -# PyTorch 写法 -x = torch.cuda.get_rng_state(device='cuda') - -# Paddle 写法 -x = paddle.get_cuda_rng_state() -``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state_all.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state_all.md index 9532740b499..a23e5d6443f 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state_all.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.get_rng_state_all.md @@ -1,4 +1,4 @@ -## [参数不一致]torch.cuda.get_rng_state_all +## [仅 paddle 参数更多]torch.cuda.get_rng_state_all ### [torch.cuda.get_rng_state_all](https://pytorch.org/docs/1.13/generated/torch.cuda.get_rng_state_all.html#torch.cuda.get_rng_state_all) @@ -6,19 +6,20 @@ torch.cuda.get_rng_state_all() ``` -### [paddle.get_cuda_rng_state](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/get_cuda_rng_state_cn.html) +### [paddle.get_rng_state]() ```python -paddle.get_cuda_rng_state() +paddle.get_rng_state(device=None) ``` -其中 Pytorch 与 Paddle 的返回参数类型不一致,具体如下: +其中 paddle 参数更多,Pytorch 与 Paddle 的返回参数类型不一致,具体如下: ### 参数映射 -| PyTorch | PaddlePaddle | 备注 | -| ------- | -------------- | ---------------------------------------------------------------------------------------------- | -| Tensor | GeneratorState | 返回参数类型不一致, Pytorch 返回 torch.ByteTensor,Paddle 返回 GeneratorState 对象,需要进行转写。 | +| PyTorch | PaddlePaddle | 备注 | +| ------- | ------------ | -------------------------------------------------------------------------------------------------- | +| - | device | 返回随机数生成器状态的设备,Paddle 取值 gpu。 | +| 返回值 | 返回值 | 返回参数类型不一致, Pytorch 返回 torch.ByteTensor,Paddle 返回 GeneratorState 对象,暂无转写方式。 | ### 转写示例 @@ -29,5 +30,5 @@ paddle.get_cuda_rng_state() x = torch.cuda.get_rng_state_all() # Paddle 写法 -x = paddle.get_cuda_rng_state() +x = paddle.get_rng_state(device='gpu') ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state.md deleted file mode 100644 index 719ce2a43de..00000000000 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state.md +++ /dev/null @@ -1,37 +0,0 @@ -## [torch 参数更多]torch.cuda.set_rng_state - -### [torch.cuda.set_rng_state](https://pytorch.org/docs/1.13/generated/torch.cuda.set_rng_state.html#torch.cuda.set_rng_state) - -```python -torch.cuda.set_rng_state(new_state, device='cuda') -``` - -### [paddle.set_cuda_rng_state](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/set_cuda_rng_state_cn.html) - -```python -paddle.set_cuda_rng_state(state_list) -``` - -其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: - -### 参数映射 - -| PyTorch | PaddlePaddle | 备注 | -| --------- | ------------ | ------------------------------------------------------------------------------------------------ | -| new_state | - | 类型为 torch.ByteTensor,表示设备需要的状态,Paddle 无此参数,需要进行转写。 | -| device | - | 指定随机数生成器状态的设备,Paddle 无此参数,暂无转写方式。 | -| - | state_list | 类型为 GeneratorState 列表,需要设置的随机数生成器状态信息列表,PyTorch 无此参数,需要进行转写。 | - -### 转写示例 - -#### 参数类型不同 - -```python -# PyTorch 写法 -x = torch.cuda.get_rng_state(device='cuda') -torch.cuda.set_rng_state(x, device='cuda') - -# Paddle 写法 -x = paddle.get_cuda_rng_state() -paddle.set_cuda_rng_state(x) -``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state_all.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state_all.md index 39e3b1dc2ab..a4617adf751 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state_all.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/cuda/torch.cuda.set_rng_state_all.md @@ -1,4 +1,4 @@ -## [参数不一致]torch.cuda.set_rng_state_all +## [仅 paddle 参数更多]torch.cuda.set_rng_state_all ### [torch.cuda.set_rng_state_all](https://pytorch.org/docs/1.13/generated/torch.cuda.set_rng_state_all.html#torch.cuda.set_rng_state_all) @@ -6,10 +6,10 @@ torch.cuda.set_rng_state_all(new_states) ``` -### [paddle.set_cuda_rng_state](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/set_cuda_rng_state_cn.html) +### [paddle.set_rng_state]() ```python -paddle.set_cuda_rng_state(state_list) +paddle.set_rng_state(state_list, device=None) ``` 其中 Pytorch 与 Paddle 的参数类型不一致,具体如下: @@ -19,6 +19,7 @@ paddle.set_cuda_rng_state(state_list) | PyTorch | PaddlePaddle | 备注 | | ---------- | ------------ | --------------------------------------------------------------------------------------------------------------- | | new_states | state_list | 表示每个设备需要的状态,PyTorch 类型为 torch.ByteTensor 列表,Paddle 类型为 GeneratorState 列表,需要进行转写。 | +| - | device | 返回随机数生成器状态的设备,Paddle 取值 gpu。 | ### 转写示例 @@ -30,6 +31,6 @@ x = torch.cuda.get_rng_state_all() torch.cuda.set_rng_state_all(x) # Paddle 写法 -x = paddle.get_cuda_rng_state() -paddle.set_cuda_rng_state(x) +x = paddle.get_rng_state() +paddle.set_rng_state(x, device='gpu') ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/distributions/torch.distributions.transforms.ComposeTransform.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/distributions/torch.distributions.transforms.ComposeTransform.md index 10fa11cffd5..df9b3125fb9 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/distributions/torch.distributions.transforms.ComposeTransform.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/distributions/torch.distributions.transforms.ComposeTransform.md @@ -16,7 +16,7 @@ paddle.distribution.ChainTransform(transforms) ### 参数映射 -| PyTorch | PaddlePaddle | 备注 | -| ---------- | ------------ | ------------------------------------------------ | -| parts | transforms | 输入的变换序列,仅参数名不一致。 | -| cache_size | - | 表示 cache 大小,Paddle 无此参数,暂无转写方式。 | +| PyTorch | PaddlePaddle | 备注 | +| ---------- | ------------ | -------------------------------------------------------------------------- | +| parts | transforms | 输入的变换序列,仅参数名不一致。 | +| cache_size | - | 表示 cache 大小,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。 | diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md index ace1c3a2942..be51d929038 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md @@ -16,13 +16,13 @@ paddle.jit.load(path, **configs) ### 参数映射 -| PyTorch | PaddlePaddle | 备注 | -| ------------- | ------------ | ------------------------------------------------------------ | -| f | - | 文件操作对象,Paddle 无此参数,暂无转写方式。 | -| map_location | - | 存储位置,Paddle 无此参数,暂无转写方式。 | -| \_extra_files | - | 额外加载的文件,Paddle 无此参数,暂无转写方式。 | -| - | path | 载入模型的路径前缀,PyTorch 无此参数,暂无转写方式。 | -| - | configs | 其他用于兼容的载入配置选项,PyTorch 无此参数,暂无转写方式。 | +| PyTorch | PaddlePaddle | 备注 | +| ------------- | ------------ | ------------------------------------------------------------------- | +| f | - | 文件操作对象,Paddle 无此参数,暂无转写方式。 | +| map_location | - | 存储位置,Paddle 无此参数,暂无转写方式。 | +| \_extra_files | - | 额外加载的文件,Paddle 无此参数,暂无转写方式。 | +| - | path | 载入模型的路径前缀,PyTorch 无此参数,暂无转写方式。 | +| - | configs | 其他用于兼容的载入配置选项,PyTorch 无此参数,Paddle 保持默认即可。 | ### 转写示例 diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.profile.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.profile.md index b0a9d885bb9..27a457780d5 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.profile.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.profile.md @@ -40,19 +40,25 @@ with torch.profiler.profile( activities=[ torch.profiler.ProfilerActivity.CPU, torch.profiler.ProfilerActivity.CUDA, - ] + ], + schedule=torch.profiler.schedule( + wait=1, + warmup=1, + active=2), + on_trace_ready=torch.profiler.tensorboard_trace_handler('./log') ) as p: - code_to_profile() -print(p.key_averages().table( - sort_by="self_cuda_time_total", row_limit=-1)) + for iter in range(10): + p.step() # Paddle 写法: - import paddle.profiler as profiler - with profiler.Profiler( - targets=[profiler.ProfilerTarget.CPU, profiler.ProfilerTarget.GPU], - scheduler = (2, 5), - on_trace_ready = profiler.export_chrome_tracing('./log')) as p: - for iter in range(10): - #train() - p.step() +with paddle.profiler.Profiler( + targets=[ + paddle.profiler.ProfilerTarget.CPU, + paddle.profiler.ProfilerTarget.GPU + ], + scheduler=(2, 5), + on_trace_ready = paddle.profiler.export_chrome_tracing('./log') +) as p: + for iter in range(10): + p.step() ``` diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md index a4087548d9c..28b2e4ab320 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md @@ -1,4 +1,4 @@ -## [torch 参数更多]torch.profiler.schedule +## [参数不一致]torch.profiler.schedule ### [torch.profiler.schedule](https://pytorch.org/docs/1.13/profiler.html#torch.profiler.schedule) @@ -12,29 +12,14 @@ torch.profiler.schedule(*, wait, warmup, active, repeat=0, skip_first=0) paddle.profiler.make_scheduler(*, closed, ready, record, repeat=0, skip_first=0) ``` -其中 PyTorch 相比 Paddle 支持更多其他参数,具体如下: +两者功能一致,参数名不一致,具体如下: ### 参数映射 -| PyTorch | PaddlePaddle | 备注 | -| ---------- | ------------ | ---------------------------------------------------------------------------- | -| wait | - | 处于 wait 状态的 step 数量,Paddle 无此参数,暂无转写方式。 | -| warmup | - | 处于 warmup 状态的 step 数量,Paddle 无此参数,暂无转写方式。 | -| active | - | 处于 active 状态的 step 数量,Paddle 无此参数,暂无转写方式。 | -| repeat | repeat | 重复次数。 | -| skip_first | skip_first | 首次 skip 步骤数量。 | -| - | closed | 处于 ProfilerState.CLOSED 状态的 step 数量,PyTorch 无此参数,暂无转写方式。 | -| - | ready | 处于 ProfilerState.READY 状态的 step 数量,PyTorch 无此参数,暂无转写方式。 | -| - | record | 处于 ProfilerState.RECORD 状态的 step 数量,PyTorch 无此参数,暂无转写方式。 | - -### 转写示例 - -#### 参数用法不同 - -```python -# PyTorch 写法: -torch.profiler.schedule(wait=1, warmup=1, active=2, repeat=1) - -# Paddle 写法: -paddle.profiler.make_scheduler(closed=1, ready=1, record=2, repeat=1) -``` +| PyTorch | PaddlePaddle | 备注 | +| ---------- | ------------ | ------------------------------------------------------------------- | +| wait | closed | 处于 wait/ProfilerState.CLOSED 状态的 step 数量,仅参数名不一致。 | +| warmup | ready | 处于 warmup/ProfilerState.READY 状态的 step 数量,仅参数名不一致。 | +| active | record | 处于 active/ProfilerState.RECORD 状态的 step 数量,仅参数名不一致。 | +| repeat | repeat | 重复次数。 | +| skip_first | skip_first | 首次 skip 步骤数量。 | From 925b08ca1debdb11631052ecac59d8c954a77331 Mon Sep 17 00:00:00 2001 From: co63oc Date: Tue, 4 Jul 2023 13:56:52 +0800 Subject: [PATCH 3/3] Fix --- .../api_difference/others/torch.jit.load.md | 5 ++--- .../api_difference/others/torch.profiler.schedule.md | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md index be51d929038..a86bfc02328 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.jit.load.md @@ -18,15 +18,14 @@ paddle.jit.load(path, **configs) | PyTorch | PaddlePaddle | 备注 | | ------------- | ------------ | ------------------------------------------------------------------- | -| f | - | 文件操作对象,Paddle 无此参数,暂无转写方式。 | +| f | path | Pytorch 为文件对象或文件名包含后缀,Paddle 为文件名不包含后缀,读取 .pdiparams,.pdmodel 等后缀文件。 | | map_location | - | 存储位置,Paddle 无此参数,暂无转写方式。 | | \_extra_files | - | 额外加载的文件,Paddle 无此参数,暂无转写方式。 | -| - | path | 载入模型的路径前缀,PyTorch 无此参数,暂无转写方式。 | | - | configs | 其他用于兼容的载入配置选项,PyTorch 无此参数,Paddle 保持默认即可。 | ### 转写示例 -#### 参数用法不同 +#### f 参数用法不同 ```python # PyTorch 写法: diff --git a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md index 28b2e4ab320..041033536e1 100644 --- a/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md +++ b/docs/guides/model_convert/convert_from_pytorch/api_difference/others/torch.profiler.schedule.md @@ -1,4 +1,4 @@ -## [参数不一致]torch.profiler.schedule +## [仅参数名不一致]torch.profiler.schedule ### [torch.profiler.schedule](https://pytorch.org/docs/1.13/profiler.html#torch.profiler.schedule)