本文档基于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 代码(包括训练、预测)一键转为基于飞桨框架的项目代码,帮助开发者快速迁移项目,并可享受 AI Studio 平台对于飞桨框架提供的海量免费计算资源
-
-
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 | 功能一致,PyTorch 存在废弃参数size_average 和reduce 。 |
2 | torch.nn.MSELoss | paddle.nn.MSELoss | 功能一致,PyTorch 存在废弃参数size_average 和reduce 。 |
3 | torch.nn.CrossEntropyLoss | paddle.nn.CrossEntropyLoss | 差异对比 |
4 | torch.nn.KLDivLoss | paddle.nn.KLDivLoss | 差异对比 |
5 | torch.nn.BCELoss | paddle.nn.BCELoss | 功能一致,PyTorch 存在废弃参数size_average 和reduce 。 |
6 | torch.nn.BCEWithLogitsLoss | paddle.nn.BCEWithLogitsLoss | 功能一致,PyTorch 存在废弃参数size_average 和reduce 。 |
7 | torch.nn.SmoothL1Loss | paddle.nn.SmoothL1Loss | 功能一致,参数名不一致,PyTorch 存在废弃参数size_average 和reduce 。 |
工具类 API 映射列表
梳理了与数据处理、分布式处理等相关的 PyTorch-PaddlePaddle API 映射列表。
视觉类 API 映射列表
梳理了与视觉处理相关的 PyTorch-PaddlePaddle API 映射列表