闲扯几句现有的深度学习框架

目前业界最常用的深度学习框架,可能就是:

  • caffe
  • tensorflow
  • torch
  • theano
  • mxnet

嗯,知道了这几个工具之后,就可以出去吹说自己精通五大深度学习框架(的拼写)了。不过为了牛逼吹得更加顺畅,还是要添加一些水分。那我们来看看CS231n对这些工具做的一个总结:

首先说一说这个Theano,这个好像是Bengio他们实验室开发出来的,说实话用的人不多,而且无论是配置还是写代码都不是很简单。听说可以实现自动求导,不过没有用过,只是看过两段代码,虽然是基于Python的,但不是很容易读懂。

接着是torch,好像是facebook用得比较多,然后就推广起来了。基于Lua,之前也看过两段代码,搭网络就是直观地add layer,看上去挺简单的,不过没用过,应该还有不少坑。

Mxnet最近被Amazon钦定了,前途无量呀。这个由陈天奇大神,李沐大神等华人打造的深度学习框架听说很不错,尤其是parallel上面。不过,现在使用的人们,应该都是有信仰的,乐于尝试新的事物。

tensorflow早先就装了,不多还没有深入研究过。Google产出的东西,工程角度上看做得很好。目前用的人很多(出来也就才一年多吧。。),社区支持不错。最好的是安装简单,外面套一层Python,pip一下就好了(虽然网不好的时候有些麻烦),GPU支持也很简单。

最后就是最近一直用的caffe,原先我以为现在没人用了,大家都转向tensorflow了,没想到现在尤其是学术界很多都还用着caffe。caffe的社区支持很不错,已有的经典Model很多,做fine tune很容易。然后就是支持的layer很多,而且还在不断增加。打通了Python接口,不是仅仅套一个pycaffe的壳子,可以使用Python layer,实现各种自定义的行为,这一点确实很赞!(之前只支持LMDB, LevelDB之类的,真的很麻烦)说起来,用caffe好像不用怎么写代码(除数据预处理外)。当然,如果有了高级需求,比如自定义Layer起来,还有些代码量的。