
3.10 其他深度学习框架
除了流行的深度学习框架TensorFlow和Keras,常见的深度学习框架还有PyTorch、TFLearn、Chainer、Theano等,这些都是深受欢迎的深度学习框架。
3.10.1 PyTorch
PyTorch与Python相融合,具有强大的GPU支持的张量计算和动态神经网络的框架,是使用GPU和CPU优化的深度学习张量库。PyTorch主页:https://github.com/pytorch/,如图3-62所示。

图3-62 PyTorch主页
PyTorch主要包含下列组件。
(1)Torch组件:包含了多维张量的数据结构以及基于其上的多种数学操作。另外,它也提供了多种工具,其中一些可以更有效地对张量和任意类型进行序列化,类似于NumPy。
(2)torch.autograd组件:提供了类和函数,用来对任意标量函数进行求导。
(3)torch.nn组件:与autograd紧密集成的神经网络库。
(4)torch.utils组件:数据装载、数据训练等应用工具。
3.10.2 TFLearn
TFLearn是一个建立在TensorFlow上的模块化、透明的深度学习库。它比TensorFlow提供了更高层次的API,从而使用户能够更加快速地进行实验。TFLearn主页:http://tflearn.org,如图3-63所示。

图3-63 TFLearn主页
TFLearn的pip安装命令为pip install tflearn,安装TFLearn前需要先安装TensorFow,如图3-64所示。

图3-64 TFLearn的pip安装
TFLearn支持大部分深度学习模型,例如Convolutions、LSTM、BiRNN、BatchNorm、PReLU、Residual networks、Generative networks等,未来还将支持最新的深度学习技术。TFLearn的特征如下。
(1)更高层次的深度神经网络API,且易于使用。
(2)通过内建神经网络模块快速模块化原型实现。
(3)对TensorFow完全透明。
(4)更方便的图形可视化。
3.10.3 Chainer
Chainer是一个专门为高效研究和开发深度学习算法而设计的开源框架,Chainer使复杂神经网络变得简单,具有如下特点。
(1)基于Python语言,允许在运行时检查和定制Python中的所有代码。
(2)Chainer采用Define by Run的方案,可以动态调整网络的参数,训练时“实时”构建计算图。
(3)由于Chainer是一个基于Python的独立的深度学习框架,由纯Python语言实现,可以完全地定制化。
(4)Chainer支持目前广泛使用的神经网络CNN、RNN、RL等,也可以自定义神经网络的结构。
(5)支持多GPU的并行运算。
Chainer主页:https://chainer.org,如图3-65所示。

图3-65 Chainer主页
Chainer的pip安装命令为pip install chainer,如图3-66所示。

图3-66 Chainer的pip安装
训练结构是Chainer中的重要部分,主要功能是建立神经网络训练数据,如图3-67所示。

图3-67 Chainer的训练结构
Chainer支持常见的训练数据集和验证数据集的接口,数据集包括三部分:数据集、迭代器和批处理转换函数。下面是使用mnist数据集的实例,代码如下。

运行结果如图3-68所示。

图3-68 Chainer的mnist数据集实例
3.10.4 Theano
Theano是一个擅长处理多维数组的Python库(类似于NumPy),专门用于定义、优化、求值数学表达式,优点是效率高,适用于多维数组。与其他深度学习库结合起来,Theano十分适合数据探索,也特别适合做机器学习,能执行深度学习中大规模神经网络算法的运算,高效运行于GPU或CPU。Theano主页:https://github.com/Theano/Theano。
Theano的pip安装命令为pip install Theano,如图3-69所示。

图3-69 Theano的pip安装