一、更新日志
-
3月16 日添加了fluid.dygraph.Layer
fluid.dygraph.Layer 是 PaddlePaddle 框架中 用于定义动态图模式下神经网络层的一个基类。 在 PaddlePaddle 的动态图模式下, 用户可以灵活地构建和训练神经网络。
二、对比表
概念\框架 | pytorch | tensorflow(as tf) | paddle(fluid) |
---|---|---|---|
1、多维数组(张量、变量) | torch.Tensor | tf.Tensor | paddle.Tensor或fluid.Variable |
2、神经网络层 | torch.nn | tf.keras.layers | paddle.nn或fluid.Layer或fluid.dygraph.Layer(更通用的动态图执行) |
3、模型构建 | torch.nn.Module和nn.Sequential | tf.keras.Model和tf.keras.Sequential | paddle.nn.layer或类似的结构 |
4、有序容器 | nn.Sequential | tf.keras.Sequential | fluid.Sequential |
5、优化器 | torch.optim | tf.optimizers | paddle.optimizer或fluid.optimizer |
6、数据集 | torch.utils.data.DataLoader 和 torchvision.transforms | tf.data.Dataset 和 tf.keras.preprocessing 模块 | paddle.io.DataLoader或fluid.io.DataLoader |
7、训练循环和控制流 | 手动编写训练循环,使用 torch.autograd 进行梯度计算 | 使用 tf.function 和 tf.GradientTape 进行自动微分和训练循环 | 提供了自动微分功能 ,paddle.grad() |
8、保存和加载模型 | torch.save()和torch.load() | tf.saved_model.save()和tf.saved_model.load()(或tf.keras.models.save_model()与tf.keras.models.load_model()) | paddle.save()和paddle.load() |
9、分布式训练 | torch.distributed | tf.distribute.Strategy | paddle.distributed |
10、可视化和调试 | 可以使用TensorBoard或可通过torch.utils.tensorboard模块 | 内置TensorBoard支持 | 提供PaddleVisual工具 |
11、量化 | torch.quantization | tf.lite和tfmot.quantization | paddle.inference.PaddlePredictor |