主流深度学习框架比较

目前市面上主流深度学习框架近十余种,每种框架各具特色。如何选择合适的深度学习框架?本篇对主流深度学习框架进行综合比较,帮助大家理清思路。

本篇比较指标包括:安装成本、代码理解程度、API丰富程度、模型丰富程度、文档完整程度、训练过程、预测过程、学习资源。

安装成本

比较而言,容易安装的框架可以迅速俘获使用者。在这方面,各主流框架的介绍文档都给出具体步骤,并保证框架易于安装。

安装易用能手:PyTorch 和PaddlePaddle 相比而言,安装步骤不繁琐,代码简洁

代码理解

Python是大多数主流深度学习框架的前端语言。不同框架都定义了一套自己的用户层语义,供开发者描述所需要的计算。不同框架的用户语义设计差别很大,复杂程度也不尽相同。TensorFlow的前端语义极其丰富,带来的相应的问题是普通用户学习难度增大,没有足够的经验写出高效运行的代码,完成同样模型,使用TensorFlow的原生API与其它主流深度学习框架相比,代码量是最高的。同时TensorFlow各种高级封装层次太深,不利于用户理解。

代码理解能手:caffe 和PyTorch和 PaddlePaddle 前端用户语义设计简洁直观,抽象层次适中,适合大多数用户上手学习。

API丰富程度

API直译为应用程序接口,是一个程序与其他软件之间的沟通桥梁。调用API后,使用者不需要理解内部工作细节,也无需理解源码,给定正确的输入后就能得到预期的输出结果,可以更快的助推自己的想法落地。而深度学习的应用涉及多种场景,因此深度学习框架的API越丰富越鲁棒,也代表着框架的易用性越强,适用性越广泛。

API丰富能手:TensorFlow和PaddlePaddle。目前Paddle的API支持大部分模型实现,包含常见的CNN/RNN类模型、基于attention的模型、强化学习等,及其相关的数据预处理、分布式训练和预测等。

模型丰富程度

每种深度学习应用其背后都对应具体模型,而模型本身来源于算法。模型可以是深度学习框架提供的示例,也可以是开发者自己搭建的。一般而言,搭建模型的前提是大家能熟练掌握深度学习知识以及算法,投入足够时间的精力,于是乎基于深度学习框架的示例模型,可以大大减少这部分的工作。一般模型也会对应具体应用场景,模型越丰富,也能代表框架支持场景越丰富。

模型丰富程度能手:Tensorflow 和Keras

这两款开源框架的模型类型丰富,能达到state-of-the-art的效果,且配合模型也有丰富的数据集,同时也有社区可以进行问题交流。

文档完整程度

深度学习框架中的文档,相当于用户使用指南。一个完整的文档体系需要包含安装编译、设计思想、代码结构等模块。文档越完整,用户在使用过程中也可得到更多的指导,并有可能在未来为开源框架贡献项目经验或优质代码。

文档丰富小能手:TensorFlow 和 Pytorch 和 PaddlePaddle

这三种开源框架有较为详细的文档教程,可以在官网上获取,其中PaddlePaddle目前已有中文版的文档。

训练与预测过程

一般来说,根据模型的精度以及单机、多机、多卡运行时的速度这两个指标对训练过程的性能进行衡量。预测过程中,服务器端关注速度和显存占用,移动端关注速度和库的体积。运行典型模型,结合以上指标,可判断训练过程与预测过程的性能。

训练与预测过程小能手:Caffe 和 PaddlePaddle

学习资源

除了文档,其他的视频或纸质教程也属于深度学习框架的学习资源。一方面深度学习框架的官方会提供资源,另一方面比较厉害的贡献者博客也可以作为参考。

学习资源能手:PaddlePaddle 和TensorFlow

PaddlePaddle目前官网已有系列视频课程,并合理划分阶段,适合开发者们逐步进阶学习。

为了让大家更清晰,小PP根据对比指标,整理出表格供大家参考

看过上述对比,大家可以根据自己的需求,选择合适的深度学习框架。这里小PP大胆推荐,如果你是初学者,不妨从PaddlePaddle 开始入门,PaddlePaddle有完整的中文教程和中文社区,学习起来更顺畅哦~

*为了方便大家使用PaddlePaddle,遇到问题可在中文社区提问,值班同学将在24小时内响应!更有精品案例、课程提供,让大家学习使用框架,轻松无忧!直达链接:

https://ai.baidu.com/forum/topic/list/168

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180628B1WXBL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券