PyTorch 1.8 与 Paddle 2.0 API映射表
本文档基于X2Paddle研发过程梳理了PyTorch(v1.8.1)常用API与PaddlePaddle 2.0.0 API对应关系与差异分析。通过本文档,帮助开发者快速迁移PyTorch使用经验,完成模型的开发与调优。
X2Paddle介绍
X2Paddle致力于帮助其它主流深度学习框架开发者快速迁移至飞桨框架,目前提供三大功能
预测模型转换
- 支持Caffe/TensorFlow/ONNX/PyTorch的模型一键转为飞桨的预测模型,并使用PaddleInference/PaddleLite进行CPU/GPU/Arm等设备的部署
PyTorch训练项目转换
- 支持PyTorch项目Python代码(包括训练、预测)一键转为基于飞桨框架的项目代码,帮助开发者快速迁移项目,并可享受AIStudio平台对于飞桨框架提供的海量免费计算资源
API映射文档
- 详细的API文档对比分析,帮助开发者快速从PyTorch框架的使用迁移至飞桨框架的使用,大大降低学习成本
详细的项目信息与使用方法参考X2Paddle在Github上的开源项目: https://github.com/PaddlePaddle/X2Paddle
API映射表目录
类别 | 简介 |
---|---|
基础操作类 | 主要为torch.XX 类API |
组网类 | 主要为torch.nn.XX 类下组网相关的API |
Loss类 | 主要为torch.nn.XX 类下loss相关的API |
工具类 | 主要为torch.nn.XX 类下分布式相关的API和torch.utils.XX 类API |
视觉类 | 主要为torchvision.XX 类API |
基础操作类API映射列表
梳理了基础操作的PyTorch-PaddlePaddle API映射列表,主要包括了构造Tensor、数学计算、逻辑计算相关的API。
持续更新…
组网类API映射列表
梳理了与构造网络相关的PyTorch-PaddlePaddle API映射列表。
持续更新…
Loss类API映射列表
梳理了计算loss相关的PyTorch-PaddlePaddle API映射列表。
序号 | PyTorch API | PaddlePaddle API | 备注 |
---|---|---|---|
1 | torch.nn.L1Loss | paddle.nn.L1Loss | 功能一致,PyTroch存在废弃参数size_average 和reduce 。 |
2 | torch.nn.MSELoss | paddle.nn.MSELoss | 功能一致,PyTroch存在废弃参数size_average 和reduce 。 |
3 | torch.nn.CrossEntropyLoss | paddle.nn.CrossEntropyLoss | 差异对比 |
4 | torch.nn.KLDivLoss | paddle.nn.KLDivLoss | 差异对比 |
5 | torch.nn.BCELoss | paddle.nn.BCELoss | 功能一致,PyTroch存在废弃参数size_average 和reduce 。 |
6 | torch.nn.BCEWithLogitsLoss | paddle.nn.BCEWithLogitsLoss | 功能一致,PyTroch存在废弃参数size_average 和reduce 。 |
7 | torch.nn.SmoothL1Loss | paddle.nn.SmoothL1Loss | 功能一致,参数名不一致,PyTroch存在废弃参数size_average 和reduce 。 |
持续更新…
工具类API映射列表
梳理了与数据处理、分布式处理等相关的PyTorch-PaddlePaddle API映射列表。
序号 | PyTorch API | PaddlePaddle API | 备注 |
---|---|---|---|
1 | torch.nn.DataParallel | paddle.DataParallel | 差异对比 |
2 | torch.nn.parameter.Parameter | paddle.createparameter | 差异对比 |
3 | <a href=”https://pytorch.org/docs/stable/generated/torch.nn.utils.clip_grad_value.html?highlight=clipgrad_value#torch.nn.utils.clipgrad_value“>torch.nn.utils.clipgrad_value | 无对应实现 | 组合实现 |
4 | torch.utils.data.DataLoader | paddle.io.DataLoader | 差异对比 |
5 | torch.utils.data.random_split | 无对应实现 | 组合实现 |
6 | torch.utils.data.distributed.DistributedSampler | 无对应实现 | 组合实现 |
7 | torch.utils.data.Dataset | paddle.io.Dataset | 功能一致 |
8 | torch.utils.data.BatchSampler | paddle.io.BatchSampler | 差异对比 |
9 | torch.utils.data.Sampler | paddle.io.Sampler | 功能一致 |
持续更新…
视觉类API映射列表
梳理了与视觉处理相关的PyTorch-PaddlePaddle API映射列表。
持续更新…