PyTorch-PaddlePaddle 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。
序号 | PyTorch API | PaddlePaddle API | 备注 |
---|---|---|---|
1 | torch.set_default_dtype | paddle.set_default_dtype | 功能一致 |
2 | torch.get_default_dtype | paddle.get_default_dtype | 功能一致 |
3 | torch.numel | paddle.numel | 功能一致,参数名不一致 |
4 | torch.tensor | paddle.to_tensor | 差异对比 |
5 | torch.from_numpy | paddle.to_tensor | 差异对比 |
6 | torch.zeros | paddle.zeros | 差异对比 |
7 | torch.zeros_like | paddle.zeros_like | 差异对比 |
8 | torch.ones | paddle.ones | 差异对比 |
9 | torch.ones_like | paddle.ones_like | 差异对比 |
10 | torch.empty | paddle.empty | 差异对比 |
11 | torch.empty_like | paddle.empty_like | 差异对比 |
12 | torch.full | paddle.full | 功能一致,参数不一致 |
13 | torch.full_like | paddle.full_like | 差异对比 |
14 | torch.arange | paddle.arange | 功能一致,参数不一致 |
15 | torch.range | paddle.arange | 功能一致,参数不一致 |
16 | torch.linspace | paddle.linspace | 功能一致,参数不一致 |
17 | torch.eye | paddle.eye | 功能一致,参数不一致 |
18 | torch.cat | paddle.concat | 功能一致,参数名不一致 |
19 | torch.chunk | paddle.chunk | 功能一致,参数名不一致 |
20 | torch.gather | paddle.gather | 差异对比 |
21 | torch.index_select | paddle.index_select | 功能一致,参数名不一致 |
22 | torch.masked_select | paddle.masked_select | 功能一致,参数名不一致 |
23 | torch.narrow | paddle.slice | 差异对比 |
24 | torch.nonzero | paddle.nonzero | 功能一致,参数名不一致 |
25 | torch.reshape | paddle.reshape | 功能一致,参数名不一致 |
26 | torch.split | paddle.split | 差异对比 |
27 | torch.squeeze | paddle.squeeze | 功能一致,参数名不一致 |
28 | torch.stack | paddle.stack | 功能一致,参数名不一致 |
29 | torch.t | paddle.t | 功能一致,参数名不一致 |
30 | torch.transpose | paddle.transpose | 差异对比 |
31 | torch.unbind | paddle.unbind | 功能一致,参数名不一致 |
32 | torch.unsqueeze | paddle.unsqueeze | 功能一致,参数名不一致 |
33 | torch.where | paddle.where | 功能一致 |
34 | torch.bernoulli | paddle.bernoulli | 功能一致,参数不一致 |
35 | torch.multinomial | paddle.multinomial | 功能一致,参数不一致 |
36 | torch.normal | paddle.normal | 差异对比 |
37 | torch.rand | paddle.rand | 差异对比 |
38 | torch.randint | paddle.randint | 功能一致,参数不一致 |
39 | torch.randn | paddle.randn | 差异对比 |
40 | torch.randperm | paddle.randperm | 功能一致,参数不一致 |
41 | torch.save | paddle.save | 差异对比 |
42 | torch.load | paddle.load | 差异对比 |
43 | torch.abs | paddle.abs | 功能一致,PaddlePaddle未定义out 参数代表输出Tensor |
44 | torch.absolute | paddle.abs | 功能一致,PaddlePaddle未定义out 参数代表输出Tensor |
45 | torch.acos | paddle.acos | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
46 | torch.arccos | paddle.acos | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
47 | torch.add | padle.add | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
48 | torch.asin | paddle.asin | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
49 | torch.arcsin | paddle.asin | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
50 | torch.atan | paddle.atan | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
51 | torch.arctan | paddle.atan | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
52 | torch.ceil | paddle.ceil | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
53 | torch.clamp | paddle.clip | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
54 | torch.conj | paddle.conj | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
55 | torch.cos | paddle.cos | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
56 | torch.cosh | paddle.cosh | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
57 | torch.div | paddle.divide | 差异对比 |
58 | torch.divide | paddle.divide | 差异对比 |
59 | torch.erf | paddle.erf | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
60 | torch.exp | paddle.exp | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
61 | torch.floor | paddle.floor | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
62 | torch.floor_divide | paddle.floor_divide | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
63 | torch.fmod | paddle.mod | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
64 | torch.log | paddle.log | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
65 | torch.log10 | paddle.log10 | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
66 | torch.log1p | paddle.log1p | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
67 | torch.log2 | paddle.log2 | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
68 | torch.logical_and | paddle.logical_and | 功能一致,参数名不一致 |
69 | torch.logical_not | paddle.logical_not | 功能一致,参数名不一致 |
70 | torch.logical_or | paddle.logical_or | 功能一致,参数名不一致 |
71 | torch.logical_xor | paddle.logical_xor | 功能一致,参数名不一致 |
72 | torch.mul | paddle.multiply | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
73 | torch.multiply | paddle.multiply | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
74 | torch.pow | paddle.pow | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
75 | torch.real | paddle.real | 功能一致,参数名不一致 |
76 | torch.reciprocal | paddle.reciprocal | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
77 | torch.remainder | paddle.mod | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
78 | torch.round | paddle.round | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
79 | torch.rsqrt | paddle.rsqrt | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
80 | torch.sign | paddle.sign | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
81 | torch.sin | paddle.sin | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
82 | torch.sinh | paddle.sinh | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
83 | torch.sqrt | paddle.sqrt | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
84 | torch.argmax | paddle.argmax | 功能一致,参数名不一致 |
85 | torch.argmin | paddle.argmin | 功能一致,参数名不一致 |
86 | torch.max | paddle.max | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
87 | torch.min | paddle.min | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
88 | torch.square | paddle.square | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
89 | torch.sub | paddle.subtract | 差异对比 |
90 | torch.subtract | paddle.subtract | 差异对比 |
91 | torch.tanh | paddle.tanh | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
92 | torch.true_divide | paddle.divide | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
93 | torch.dist | paddle.dist | 功能一致,参数名不一致 |
94 | torch.logsumexp | paddle.logsumexp | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
95 | torch.mean | paddle.mean | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
96 | torch.median | paddle.median | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
97 | torch.norm | paddle.norm | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor以及dtype 参数代表输出Tensor类型 |
98 | torch.prod | paddle.prod | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
99 | torch.std | paddle.std | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
100 | torch.std_mean | 无对应实现 | 组合实现 |
101 | torch.sum | paddle.sum | 功能一致,参数名不一致 |
102 | torch.unique | paddle.unique | 差异对比 |
103 | torch.var | paddle.var | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
104 | torch.var_mean | 无对应实现 | 组合实现 |
105 | torch.allclose | paddle.allclose | 功能一致,参数名不一致 |
106 | torch.argsort | paddle.argsort | 功能一致,参数名不一致 |
107 | torch.eq | paddle.equal | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
108 | torch.equal | paddle.equal_all | 功能一致,参数名不一致 |
109 | torch.ge | paddle.greater_equal | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
110 | torch.gt | paddle.greater_than | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
111 | torch.isfinite | paddle.isfinite | 功能一致,参数名不一致 |
112 | torch.isinf | paddle.isinf | 功能一致,参数名不一致 |
113 | torch.isnan | paddle.isnan | 功能一致,参数名不一致 |
114 | torch.kthvalue | 无对应实现 | 组合实现 |
115 | torch.le | paddle.less_equal | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
116 | torch.lt | paddle.less_than | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
117 | torch.maximum | paddle.maximum | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
118 | torch.minimum | paddle.minimum | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
119 | torch.ne | paddle.not_equal | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
120 | torch.sort | paddle.argsort | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
121 | torch.topk | paddle.topk | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
122 | torch.cross | paddle.cross | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
123 | torch.any | paddle.any | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
124 | torch.cumsum | paddle.cumsum | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
125 | torch.diag | paddle.diag | 差异对比 |
126 | torch.diag_embed | paddle.nn.functional.diag_embed | 功能一致 |
127 | torch.einsum | paddlenlp.ops.einsum | 功能一致,需要安装paddlenlp |
128 | torch.flatten | paddle.flatten | 功能一致,参数名不一致 |
129 | torch.flip | paddle.flip | 功能一致,参数名不一致 |
130 | torch.rot90 | 无对应实现 | 组合实现 |
131 | torch.meshgrid | paddle.meshgrid | 功能一致 |
132 | torch.roll | paddle.roll | 功能一致,参数名不一致 |
133 | torch.tril | paddle.tril | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
134 | torch.triu | paddle.triu | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
135 | torch.bmm | paddle.bmm | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
136 | torch.cholesky | paddle.cholesky | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
137 | torch.dot | paddle.dot | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
138 | torch.inverse | paddle.inverse | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
139 | torch.trace | paddle.trace | 差异对比 |
140 | torch.addmv | 无对应实现 | 组合实现 |
141 | torch.addr | 无对应实现 | 组合实现 |
142 | torch.baddbmm | 无对应实现 | 组合实现 |
143 | torch.addmm | paddle.addmm | 功能一致,参数名不一致,PaddlePaddle未定义out 参数代表输出Tensor |
144 | torch.chain_matmul | 无对应实现 | 组合实现 |
145 | torch.cholesky_inverse | 无对应实现 | 组合实现 |
146 | torch.cholesky_solve | 无对应实现 | 组合实现 |
147 | torch.matmul | paddle.matmul | 差异对比 |
148 | torch.mm | paddle.matmul | 差异对比 |
149 | torch.mv | 无对应实现 | 组合实现 |
150 | torch.scatter | paddle.scatter_nd_add | 组合实现 |
持续更新...
组网类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映射列表。
序号 | PyTorch API | PaddlePaddle API | 备注 |
---|---|---|---|
1 | torch.nn.DataParallel | paddle.DataParallel | 差异对比 |
2 | torch.nn.parameter.Parameter | paddle.create_parameter | 差异对比 |
3 | torch.nn.utils.clip_grad_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映射列表。
持续更新...