PyTorch与Paddle映射表

简介: PyTorch与Paddle映射表

 本文档基于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。

                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

                组网类 API 映射列表

                梳理了与构造网络相关的 PyTorch-PaddlePaddle API 映射列表。

                序号 PyTorch API PaddlePaddle API 备注
                1 torch.nn.Conv1d paddle.nn.Conv1D 差异对比
                2 torch.nn.Conv2d paddle.nn.Conv2D 差异对比
                3 torch.nn.Conv3d paddle.nn.Conv3D 差异对比
                4 torch.nn.ConvTranspose1d paddle.nn.Conv1DTranspose 差异对比
                5 torch.nn.ConvTranspose2d paddle.nn.Conv2DTranspose 差异对比
                6 torch.nn.ConvTranspose3d paddle.nn.Conv3DTranspose 差异对比
                7 torch.nn.Linear paddle.nn.Linear 差异对比
                8 torch.nn.MaxPool1d paddle.nn.MaxPool1D 差异对比
                9 torch.nn.MaxPool2d paddle.nn.MaxPool2D 差异对比
                10 torch.nn.MaxPool3d paddle.nn.MaxPool3D 差异对比
                11 torch.nn.MaxUnpool1d 无对应实现 组合实现
                12 torch.nn.MaxUnpool2d 无对应实现 组合实现
                13 torch.nn.MaxUnpool3d 无对应实现 组合实现
                14 torch.nn.AvgPool1d paddle.nn.AvgPool1D 差异对比
                15 torch.nn.AvgPool2d paddle.nn.AvgPool2D 差异对比
                16 torch.nn.AvgPool3d paddle.nn.AvgPool3D 差异对比
                17 torch.nn.AdaptiveMaxPool1d paddle.nn.AdaptiveMaxPool1D 功能一致,参数名不一致
                18 torch.nn.AdaptiveMaxPool2d paddle.nn.AdaptiveMaxPool2D 功能一致,参数名不一致
                19 torch.nn.AdaptiveMaxPool3d paddle.nn.AdaptiveMaxPool3D 功能一致,参数名不一致
                20 torch.nn.AdaptiveAvgPool1d paddle.nn.AdaptiveAvgPool1D 功能一致,参数名不一致
                21 torch.nn.AdaptiveAvgPool2d paddle.nn.AdaptiveAvgPool2D 功能一致,参数名不一致
                22 torch.nn.AdaptiveAvgPool3d paddle.nn.AdaptiveAvgPool3D 功能一致,参数名不一致
                23 torch.nn.ConstantPad1d paddle.nn.Pad1D 差异对比
                24 torch.nn.ConstantPad2d paddle.nn.Pad2D 差异对比
                25 torch.nn.ConstantPad3d paddle.nn.Pad3D 差异对比
                26 torch.nn.ReflectionPad1d paddle.nn.Pad1D 差异对比
                27 torch.nn.ReflectionPad2d paddle.nn.Pad2D 差异对比
                28 torch.nn.ReplicationPad1d paddle.nn.Pad1D 差异对比
                29 torch.nn.ReplicationPad2d paddle.nn.Pad2D 差异对比
                30 torch.nn.ReplicationPad3d paddle.nn.Pad3D 差异对比
                31 torch.nn.BatchNorm1d paddle.nn.BatchNorm1D 差异对比
                32 torch.nn.BatchNorm2d paddle.nn.BatchNorm2D 差异对比
                33 torch.nn.BatchNorm3d paddle.nn.BatchNorm3D 差异对比
                34 torch.nn.Upsample paddle.nn.Upsample 差异对比
                35 torch.nn.Dropout paddle.nn.Dropout 差异对比
                36 torch.nn.Dropout2d paddle.nn.Dropout2D 差异对比
                37 torch.nn.Dropout3d paddle.nn.Dropout3D 差异对比
                38 torch.nn.LSTM paddle.nn.LSTM 差异对比
                39 torch.nn.GRU paddle.nn.GRU 差异对比
                40 torch.nn.Embedding paddle.nn.Embedding 差异对比
                41 torch.nn.ELU paddle.nn.ELU 功能一致,PaddlePaddle 未定义inplace参数表示在不更改变量的内存地址的情况下,直接修改变量的值
                42 torch.nn.Hardsigmoid paddle.nn.Hardsigmoid 功能一致,PaddlePaddle 未定义inplace参数表示在不更改变量的内存地址的情况下,直接修改变量的值
                43 torch.nn.LeakyReLU paddle.nn.LeakyReLU 功能一致,PaddlePaddle 未定义inplace参数表示在不更改变量的内存地址的情况下,直接修改变量的值
                44 torch.nn.PReLU paddle.nn.PReLU 功能一致
                45 torch.nn.ReLU paddle.nn.ReLU 功能一致,PaddlePaddle 未定义inplace参数表示在不更改变量的内存地址的情况下,直接修改变量的值
                46 torch.nn.Softmax paddle.nn.Softmax 功能一致,参数名不一致

                Loss 类 API 映射列表

                梳理了计算 loss 相关的 PyTorch-PaddlePaddle API 映射列表。

                序号 PyTorch API PaddlePaddle API 备注
                1 torch.nn.L1Loss paddle.nn.L1Loss 功能一致,PyTorch 存在废弃参数size_averagereduce
                2 torch.nn.MSELoss paddle.nn.MSELoss 功能一致,PyTorch 存在废弃参数size_averagereduce
                3 torch.nn.CrossEntropyLoss paddle.nn.CrossEntropyLoss 差异对比
                4 torch.nn.KLDivLoss paddle.nn.KLDivLoss 差异对比
                5 torch.nn.BCELoss paddle.nn.BCELoss 功能一致,PyTorch 存在废弃参数size_averagereduce
                6 torch.nn.BCEWithLogitsLoss paddle.nn.BCEWithLogitsLoss 功能一致,PyTorch 存在废弃参数size_averagereduce
                7 torch.nn.SmoothL1Loss paddle.nn.SmoothL1Loss 功能一致,参数名不一致,PyTorch 存在废弃参数size_averagereduce

                工具类 API 映射列表

                梳理了与数据处理、分布式处理等相关的 PyTorch-PaddlePaddle API 映射列表。

                视觉类 API 映射列表

                梳理了与视觉处理相关的 PyTorch-PaddlePaddle API 映射列表


                目录
                打赏
                0
                0
                0
                0
                109
                分享
                相关文章
                TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下
                AI诸多工具库工具库之间的切换,是一件耗时耗力的麻烦事。ONNX 即应运而生,使不同人工智能框架(如PyTorch、TensorRT、MXNet)可以采用相同格式存储模
                2347 1
                TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下
                PyTorch量化感知训练技术:模型压缩与高精度边缘部署实践
                本文深入探讨神经网络模型量化技术,重点讲解训练后量化(PTQ)与量化感知训练(QAT)两种主流方法。PTQ通过校准数据集确定量化参数,快速实现模型压缩,但精度损失较大;QAT在训练中引入伪量化操作,使模型适应低精度环境,显著提升量化后性能。文章结合PyTorch实现细节,介绍Eager模式、FX图模式及PyTorch 2导出量化等工具,并分享大语言模型Int4/Int8混合精度实践。最后总结量化最佳策略,包括逐通道量化、混合精度设置及目标硬件适配,助力高效部署深度学习模型。
                214 21
                PyTorch量化感知训练技术:模型压缩与高精度边缘部署实践
                9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体
                生成对抗网络(GAN)的训练效果高度依赖于损失函数的选择。本文介绍了经典GAN损失函数理论,并用PyTorch实现多种变体,包括原始GAN、LS-GAN、WGAN及WGAN-GP等。通过分析其原理与优劣,如LS-GAN提升训练稳定性、WGAN-GP改善图像质量,展示了不同场景下损失函数的设计思路。代码实现覆盖生成器与判别器的核心逻辑,为实际应用提供了重要参考。未来可探索组合优化与自适应设计以提升性能。
                256 7
                9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体
                提升模型泛化能力:PyTorch的L1、L2、ElasticNet正则化技术深度解析与代码实现
                本文将深入探讨L1、L2和ElasticNet正则化技术,重点关注其在PyTorch框架中的具体实现。关于这些技术的理论基础,建议读者参考相关理论文献以获得更深入的理解。
                55 4
                提升模型泛化能力:PyTorch的L1、L2、ElasticNet正则化技术深度解析与代码实现
                深入解析torch.compile:提升PyTorch模型性能、高效解决常见问题
                PyTorch 2.0推出的`torch.compile`功能为深度学习模型带来了显著的性能优化能力。本文从实用角度出发,详细介绍了`torch.compile`的核心技巧与应用场景,涵盖模型复杂度评估、可编译组件分析、系统化调试策略及性能优化高级技巧等内容。通过解决图断裂、重编译频繁等问题,并结合分布式训练和NCCL通信优化,开发者可以有效提升日常开发效率与模型性能。文章为PyTorch用户提供了全面的指导,助力充分挖掘`torch.compile`的潜力。
                161 17
                基于昇腾用PyTorch实现CTR模型DIN(Deep interest Netwok)网络
                本文详细讲解了如何在昇腾平台上使用PyTorch训练推荐系统中的经典模型DIN(Deep Interest Network)。主要内容包括:DIN网络的创新点与架构剖析、Activation Unit和Attention模块的实现、Amazon-book数据集的介绍与预处理、模型训练过程定义及性能评估。通过实战演示,利用Amazon-book数据集训练DIN模型,最终评估其点击率预测性能。文中还提供了代码示例,帮助读者更好地理解每个步骤的实现细节。
                从零开始用Pytorch实现LLaMA 4的混合专家(MoE)模型
                近期发布的LLaMA 4模型引入混合专家(MoE)架构,以提升效率与性能。尽管社区对其实际表现存在讨论,但MoE作为重要设计范式再次受到关注。本文通过Pytorch从零实现简化版LLaMA 4 MoE模型,涵盖数据准备、分词、模型构建(含词元嵌入、RoPE、RMSNorm、多头注意力及MoE层)到训练与文本生成全流程。关键点包括MoE层实现(路由器、专家与共享专家)、RoPE处理位置信息及RMSNorm归一化。虽规模小于实际LLaMA 4,但清晰展示MoE核心机制:动态路由与稀疏激活专家,在控制计算成本的同时提升性能。完整代码见链接,基于FareedKhan-dev的Github代码修改而成。
                94 9
                从零开始用Pytorch实现LLaMA 4的混合专家(MoE)模型
                比扩散策略更高效的生成模型:流匹配的理论基础与Pytorch代码实现
                扩散模型和流匹配是生成高分辨率数据(如图像和机器人轨迹)的先进技术。扩散模型通过逐步去噪生成数据,其代表应用Stable Diffusion已扩展至机器人学领域形成“扩散策略”。流匹配作为更通用的方法,通过学习时间依赖的速度场将噪声转化为目标分布,适用于图像生成和机器人轨迹生成,且通常以较少资源实现更快生成。 本文深入解析流匹配在图像生成中的应用,核心思想是将图像视为随机变量的实现,并通过速度场将源分布转换为目标分布。文中提供了一维模型训练实例,展示了如何用神经网络学习速度场,以及使用最大均值差异(MMD)改进训练效果。与扩散模型相比,流匹配结构简单,资源需求低,适合多模态分布生成。
                161 13
                比扩散策略更高效的生成模型:流匹配的理论基础与Pytorch代码实现

                推荐镜像

                更多
                AI助理

                你好,我是AI助理

                可以解答问题、推荐解决方案等

                登录插画

                登录以查看您的控制台资源

                管理云资源
                状态一览
                快捷访问