近年来,深度学习在很多机器学习领域都有着非常出色的表现,在图像识别、语音识别、自然语言处理、机器人、网络广告投放、医学自动诊断和金融等领域有着广泛应用。面对繁多的应用场景,深度学习框架有助于建模者节省大量而繁琐的外围工作,更聚焦业务场景和模型设计本身。
使用深度学习框架完成模型构建有如下两个优势:
节省编写大量底层代码的精力:屏蔽底层实现,用户只需关注模型的逻辑结构。同时,深度学习工具简化了计算,降低了深度学习入门门槛。
省去了部署和适配环境的烦恼:具备灵活的移植性,可将代码部署到CPU/GPU/移动端上,选择具有分布式性能的深度学习工具会使模型训练更高效。
因此,在开始深度学习项目之前,选择一个合适的框架是非常重要的。目前,全世界最为流行的深度学习框架有PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等。下面我们就来介绍一下目前主流的、以及一些刚开源但表现非常优秀的深度学习框架的各自特点,希望能够帮助大家在学习工作时作出合适的选择。
Theano
作为深度学习框架的祖师爷,Theano 的诞生为人类叩开了新时代人工智能的大门。Theano 的开发始于 2007 年的蒙特利尔大学,早期雏形由两位传奇人物 Yoshua Bengio 和 Ian Goodfellow 共同打造,并于开源社区中逐渐壮大。
Theano 基于 Python,是一个擅长处理多维数组的库,十分适合与其它深度学习库结合起来进行数据探索。它设计的初衷是为了执行深度学习中大规模神经网络算法的运算。其实,Theano 可以被更好地理解为一个数学表达式的编译器:用符号式语言定义你想要的结果,该框架会对你的程序进行编译,在 GPU 或 CPU 中高效运行。
Theano 的出现为人工智能在新时代的发展打下了强大的基础,在过去的很长一段时间内,Theano 都是深度学习开发与研究的行业标准。往后也有大量基于 Theano 的开源深度学习库被开发出来,包括 Keras、Lasagne 和 Blocks,甚至后来火遍全球的 TensorFlow 也有很多与 Theano 类似的功能。
随着更多优秀的深度学习开源框架陆续涌现,Theano 逐渐淡出了人们的视野。2013 年,Theano 创始者之一 Ian Goodfellow 加入 Google 开发 TensorFlow,标志着 Theano 正式退出历史舞台。目前仅有部分研究领域的学者会使用 Theano 进行一些学术研究。
Caffe&Caffe2
Caffe 是一个优先考虑表达、速度和模块化来设计的框架,它由贾扬清和伯克利人工智能实验室研究开发。支持 C、C++、Python等接口以及命令行接口。它以速度和可转性以及在卷积神经网络建模中的适用性而闻名。Caffe可以每天处理超过六千万张图像,只需单个NVIDIA K40 GPU,其中 1毫秒/图像用于推理,4毫秒/图像用于学习。
使用Caffe库的好处是从深度网络存储库"Caffe 模型Zoo"访问可用网络,这些网络经过预先培训,可以立即使用。通过Caffe Model Zoo框架可访问用于解决深度学习问题的预训练网络、模型和权重。这些模型可完成简单的递归、大规模视觉分类、用于图像相似性的SiameSE网络、语音和机器人应用等。
不过,Caffe 不支持精细粒度网络层,给定体系结构,对循环网络和语言建模的总体支持相当差,必须用低级语言建立复杂的层类型,使用门槛很高。Caffe2是由Facebook组织开发的深度学习模型,虽然使用门槛不像Caffe那样高,但仍然让不那么看重性能的开发者望而却步。另外,Caffe2继承了Caffe的优点,在速度上令人印象深刻。Facebook 人工智能实验室与应用机器学习团队合作,利用Caffe2大幅加速机器视觉任务的模型训练过程,仅需 1 小时就训练完ImageNet 这样超大规模的数据集。2018 年 3 月底,Facebook 将 Caffe2 并入 PyTorch,一度引起轰动。
Tensorflow
TensorFlow 是 Googl