深度学习的框架们


    至深度学习在各个领域大放异彩,深度学习的框架也如雨后春笋般地涌现。不同的设计思想、不同的实现语言、不同的使用范围、不同的擅长领域、以及是否是多卡、是否是分布式,成为这些框架各自的特性。如谷歌的tensorflow,  Nervana的Neon, IBM的SystemML, Apache的singa, 微软的CNTK,facebook的torchnet,  还有caffe, torch, mxnet, theano, 以及theano的衍生Keras(现在转到以tensorflow为后台), Blocks, 和 Lasagna。

深度学习的框架们_第1张图片


    速度上, Neon号称最快, theano和torch也比较优秀, caffe和tensorflow比较一般。具体可以看这个性能比对报告 . 


  • neon . nervanasys公司旗下的开源库,nervanasys的初衷是开发一个专门用于深度学习的硬件平台,并能提供深度学习的云服务。Intel已经收购了nervana公司!看来Intel是要和Nvidia撕到底的节奏阿。
  • theano. 通过解析表达式的导数来计算BP的梯度,而不像别的使用数值方法的框架那样用链式法则求导,避免了误差叠加。因此,它对那些对梯度计算精度要求的研究人十分有用,能在全局最小搜索时能获得更佳的效果。
  • torch .  Lua开发,可移植性、扩展性强。可以直接用LoadCaffe来使用caffe的模型。使用方便性强。
  • caffe . 专业做图像,C++开发。是一个比较早的工程化成熟的开源DL框架,至今活跃度也很高。有大量的已经训练好的模型,可以直接拿来用,或是做模型参数初始化。DIGITS支持了caffe, 提高caffe使用人的开发效率。 
  • tensorflow . google的,潜力无限。可以分布式的训练,并且是模型并行。 有大量的工具来提高实验效率。 虽然现在速度较torch慢,但提高性能的工作正在不断进行中,期待!
  • mxnet . 国人开发的国产框架,速度很快,爱国码农会毫不犹豫地选择它。
  • CNTK .  WIndows下VS开发。 哈哈
  • singa . Apache旗下的框架,应该能和apache其他的框架产生正向的化学反应, 主要是工程上,也比较期待。
    还有很多创业公司投生到深度学习软件产品中,如有名的包括Microsoft (Distributed Machine Learning Toolkit), Intel (Trusted Analytics Platform), Netflix, Pandora, Spotify, and Snapchat, 还有一些不是很有名的,如Teradeep, Enlitic, Ersatz Labs, Clarifai, MetaMind, and Skymind. 

    业术有专攻,希望做垂直领域的专业DL框架,让框架更懂算法, 让性能更好。
      这里 还有一个总结得不错的对比,从模型功能丰富度、接口使用、模型部署、速度性能、架构、软硬件生态、可移植性等诸多方面做了对比。


你可能感兴趣的:(深度学习)