一、简介
1. Paddle
PaddlePaddle是百度自主研发的集深度学习核心框架、工具组件和服务平台为一体的技术领先、功能完备的开源深度学习平台,有全面的官方支持的工业级应用模型,涵盖自然语言处理、计算机视觉、推荐引擎等多个领域,并开放多个预训练中文模型。
PaddlePaddle同时支持稠密参数和稀疏参数场景的大规模深度学习并行训练,支持千亿规模参数、数百个节点的高效并行训练。PaddlePaddle拥有多端部署能力,支持服务器端、移动端等多种异构硬件设备的高速推理,预测性能有显著优势。目前PaddlePaddle已经实现了API的稳定和向后兼容,具有完善的中英双语使用文档。
PaddlePaddle是一个开源的深度学习平台,而在我们进行使用的时候主要使用的是其核心框架Paddle Fluid。Paddle Fluid提供覆盖深度学习开发、训练、预测及部署全流程的服务。
和其他我们常用的深度学习框架一样,Fluid同样使用Tensor结构来承载数据。
2. Pytorch
Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Paddle Fluid的动态计算图相同,pytorch的计算图也是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。
二、任务简介
![bf8afb384144b56a70b31f9f13a4d581.png](https://i-blog.csdnimg.cn/blog_migrate/7166f4d76948c1c2bf8a5227b54aaddc.jpeg)
三、代码实现
1. Paddle
import
2. Pytorch
import
三、对比
1.结果
Paddle:
![c0b82f2efd5335f3cf17549e99cf1d14.png](https://i-blog.csdnimg.cn/blog_migrate/7a90c35baf9ff07282948e54e18ddb55.jpeg)
Pytorch:
![89697784c8e3c41c5ee155ac0a4e7077.png](https://i-blog.csdnimg.cn/blog_migrate/d1c562f4d3d859b5fe7f56f2e4382b0c.png)
两者都可以极快地达到较高的准确率
2.实现方式
两者都采取的是动态图
两者都有直接支持MNIST数据集的获取,但是Pytorch需要自己进行归一化、居中等处理,但是Paddle提供的数据是已经处理过后了的。
两者提供的读取数据的相关API基本类似,都可以直接做到随机读取数据等。
在模型训练过程中都支持自动求导,多有相同的损失函数接口,不同求导方式的接口等,搭建模型都十分方便。
总的来说,两者差距很小,学会了其中任意一种再去使用其他的都可以极快地上手。