深度学习应用与实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 深度学习框架

1.2.1 常见框架介绍

在深度学习领域,如果开发者要从零开始进行深度学习算法的开发,难度是相当大的。值得庆幸的是,目前已经有了多个成熟的深度学习框架。使用深度学习框架,开发者可以更快速、更便捷地进行深度学习算法的开发。现在常用的深度学习框架有 TensorFlow、PyTorch、Keras、Caffe PaddlePaddle(飞浆)等。

TensorFlow是Google在2015年发布的开源深度学习框架,是最常用的深度学习框架之一,它支持多种编程语言及多种操作系统,具有完备的生态环境,具有如TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud等多个子项目,为开发者提供了丰富的应用程序接口(Application Porgram Interface,API),使得开发者可以快速设计深度学习网络,而不用耗费大量时间编写底层代码。

PyTorch是Facebook在原Torch编程框架的基础上推出的,使用Python为主要的开发语言,采用命令编程方式,极大地方便了神经网络模型的构建与训练。PyTorch 不但具有良好的接口设计,而且使用起来相当简单,可与Numpy、Scipy库等完美结合,同时具有基于张量的性能优越的GPU加速设计,在学术界是主流的深度学习框架。

Keras是基于Python语言设计编写的,它可以在TensorFlow上运行,是一个高层的API,支持卷积神经网络和递归神经网络,在CPU和GPU上均可运行。使用者可以使用Keras快速实现开发目标。Keras 的缺点为缺乏底层实现,对底层框架进行了抽象,运行效率不高,灵活性不足。目前Keras已经被完全封装在TensorFlow当中,使用TensorFlow的Keras模块可以获得Keras所有的编程效果。

Caffe 是基于 C++语言开发的,它主要用于解决卷积神经网络问题,对于其他神经网络并不适用。Caffe提供了Python语言的编程接口,它可以基于Python语言进行应用的开发,也可以运行在GPU和CPU上。2017年,由Facebook对Caffe进行了升级,形成了Cafffe2。

提到深度学习框架,不得不提国内著名的PaddlePaddle。PaddlePaddle是百度在2016年宣布开放的深度学习框架,是我国首个自主研发、功能完备的深度学习平台,集成了模型训练与推理、基础模型库、端到端的开发套件及各种常用的工具库等,是目前国内市场份额最高的深度学习框架,可以应用在搜索、图像识别、语音语义识别理解、情感分析、机器翻译、用户画像推荐等领域中,帮助越来越多的行业完成人工智能赋能,实现产业智能化升级。

除以上提到的深度学习框架,还有其他的框架可用于深度学习算法的开发与研究,如Theano、CNTK、MXNetDeeplearning4j、ONNX等。

为了满足不同用户的需求,本书主要介绍使用TensorFlow和PyTorch进行项目的实现与讲解。如果项目实现中没有相应的框架,用户可在配置好Python环境后,参考以下安装步骤安装相应框架(详细的编程环境搭建可扫码观看视频)。

1.操作系统为Windows 7及以上

打开CMD命令行终端界面,输入以下命令进行安装。

2.操作系统为Ubuntu18.04及以上

打开Terminal命令行终端界面,输入以下命令可以进行安装,在安装过程中要输入当前账号的密码进行身份核实。