PaddlePaddle与PyTorch的转换

这篇博客对比了PaddlePaddle 2.0和PyTorch之间的常用包、网络结构、数据加载处理、模型训练及预测的对应关系。两者在API上有相似之处,例如nn.Module与nn.Layer,torch.optim与paddle.optimizer。同时,PaddlePaddle在数据预处理、模型训练和保存等方面提供了相应的函数。对于开发者来说,理解这些对应关系有助于在两个框架间灵活切换。
摘要由CSDN通过智能技术生成


PaddlePaddle 2.0和PyTorch风格还是非常像的。使用PaddlePaddle可以直接调用百度AI Studio里的一些资源(包括GPU、预训练权重之类的),而且说明文档、社区都是中文的,比较友好;而PyTorch在Github有更多的代码与资源,两者配合使用是比较香的。下面整理了一些PaddlePaddle以及PyTorch中对应的函数。当然,最好的使用方法是知道对应关系之后, 去PyTorch、PaddlePaddle官网上的数据手册查看具体说明

1 常用的包

PyTorchPaddlePaddle说明
torch.nnpaddle.nn包括了神经网络相关的大部分函数
nn.Modulenn.Layer搭建网络时集成的父类,包含了初始化等基本功能
torch.optimpaddle.optimizer训练优化器
torchvision.transformspaddle.vision.transforms数据预处理、图片处理
torchvision.datasetspaddle.vision.datasets数据集的加载与处理

2 网络结构

这一部分函数的输入参数基本是一致的,有不一致的地方会特别说明

PyTorchPaddlePaddle说明
nn.Conv2dnn.Conv2D2维卷积层
nn.BatchNorm2dnn.BatchNorm2DBatch Normalization 归一化
nn.ReLUnn.ReLUReLU激活函数
nn.MaxPool2dnn.MaxPool2D二维最大池化层
nn.AdaptiveAvgPool2dnn.AdaptiveAvgPool2D自适应二维平均池化(只用给定输出形状即可)
nn.Linearnn.Linear全连接层
nn.Sequentialnn.Sequential顺序容器,用来添加layers
torch.flattenpaddle.flatten展平处理
torch.softmaxpaddle.softmaxsoftmax层

3 数据加载与处理

PyTorchPaddlePaddle说明
transforms.Composetransforms.Compose图片处理打包
transforms.RandomResizedCroptransforms.RandomResizedCrop随机裁剪
transforms.RandomHorizontalFliptransforms.RandomHorizontalFlip随机水平翻转
transforms.ToTensortransforms.ToTensor转化为tensor格式
transforms.Normalizetransforms.Normalize数据标准化
datasets.ImageFolderdatasets.DatasetFolder指定数据集文件夹
torch.utils.data.DataLoaderpaddle.io.DataLoader加载数据集

4 模型训练

这里括号表示为用户自己定义的变量名

PyTorchPaddlePaddle说明
(net).train(net).train训练模式
(loss).backward(loss).backward反向传递误差
optim.Adamoptim.AdamAdam优化器,注意paddlepaddle中的参数分别为parameters和learning _rate,与PyTorch中是不同的
(optimizer).no_grad(optimizer).zero_grad梯度清零
torch.savepaddle.jit.save说实话,这两个还是有点区别的,使用请看官方文档
(net).eval(net).eval预测模式

5 模型预测

PyTorchPaddlePaddle说明
torch.unsqueezepaddle.unsqueeze增加数据维度
torch.no_gradpaddle.no_grad不计算梯度

6 其它

PyTorchPaddlePaddle说明
torch.devicepaddle.set_device指定设备
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值