[关闭]
@anboqing 2017-06-07T11:30:18.000000Z 字数 1849 阅读 2148

深度学习框架

深度学习


主流深度学习框架简介


Caffe

http://caffe.berkeleyvision.org/

Caffe是伯克利人工智能研究室维护的深度学习库。

Theano

http://deeplearning.net/software/theano/

Theano是蒙特利尔大学开源的深度学习库。

Tensorflow

https://www.tensorflow.org/

TensorFlow是Google开源的深度学习框架。

MXNET

http://mxnet.io/

MXNET是由开源社区DMLC发起的深度学习项目,目前MXNET已经被amazon AWS指定为官方深度学习平台。

keras

https://keras-cn.readthedocs.io

Keras是一个高层神经网络API,Keras由纯Python编写而成。Keras是一个模型级的库,提供了快速构建深度学习网络的模块。Keras依赖于处理张量的库称为“后端引擎”。Keras提供了两种后端引擎Theano/Tensorflow,并将其函数统一封装,使得用户可以以同一个接口调用不同后端引擎的函数。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:


速度

速度比较

可以看出MXNet,Torch和Caffe三者在性能上不相上下。这个符合预期,因为在单卡上评测的几个网络的绝大部分运算都由CUDA和CUDNN完成。TensorFlow比其他三者都慢2倍以上,这可能由于是低版本的CUDNN和项目刚开源的缘故。

内存占用

Caffe > TensorFlow > MXNET

编程模型比较

编程模型分为命令式和符号式两种。
关于不同编程模型各自的特点,参见:http://mxnet.io/architecture/program_model.html

Caffe是命令式架构,其余都是符号式架构。

非符号架构缺点:

符号构架优点:

增加新运算符:

模型重用性

训练深度网络非常耗时,同时也需要消耗大量资源,所以大多数流行的框架都有自己的预训练模型库,它们能作为初始权重被用于特殊领域或自定义图像的迁移学习或微调深度网络。

底层的张量(Tensor)操作支持度

详细的对比见: https://www.leiphone.com/news/201702/T5e31Y2ZpeG1ZtaN.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注