如何选择深度学习框架 TensorFlow/Torch/Mxnet/Theano

来源:互联网 发布:视频服务器软件有哪些 编辑:程序博客网 时间:2024/05/17 06:51
原址
要因人而异。回顾DL库的发展历程,可以看到从当年的caffe,theano到现在的这几种库,每一个时期都有不同的用户群。
caffe,theano 这些库当年都是在大学里开发的,主要目的是为了做研究,到现在caffe、pylearn2这种配置型的编程方式,已经越来越少用了。而theano 阵营使用数据流的抽象方法,被 tensorflow 继承了下来,当年在LISA的 theano 的开发者们,很多都去了google tensorflow 。甚至caffe的开发者,当时也去了 google 帮忙开发 tensorflow。

由此可见,现在DL库的发展已经从学校转向产业界了。而你到底选择哪种库呢?

如果你是本科生,有机器学习的课
先根据老师要求选择库,若无要求再考虑。但切记!作为本科生,你有不同的课程,可能不会有太多时间花在一门课上的,所以越容易的库上手越好。若你想深入了解DL,你若能把 TuneLayer 官网的教程都跑一遍,都可以胜过一般的研究生了。。


如果你是算法研究者
不瞒你说,我的组里有不少搞DL算法的博后用 matlab 。。因为现在 matlab 都支持 GPU,所以他们以前用什么,现在就接着用什么,所以对他们来说用什么没有关系,只要熟练就好。
若你之前没有非常熟悉的库,刚刚开始的话。我建议你用 框架+高级API 的搭配,比如我以前是用 theano + lasagne 的,lasagne 是theano 作者们基于 theano 开发的API,她们可以无缝对接,当时选 lasagne 的原因是它不会隐藏 theano 的方法,而是尽可能让使用者用 theano 的方法,训练过程也不会封闭起来。你若用过 tflearn, keras 就会知道,它们用 model.fit(x, y) 这种 scikit-learn 的傻瓜模式,完全不适合研究人员使用。。。。

我不推荐使用 keras, tflearn, 这种库,但使用 theano, lasagne 又略显过时。使用 torch 的话,它的代码和 matlab 挺像的,如果你不会python又懒得学,可以用它。但如果你以后毕业想去企业,最好还是选用基于 python 的,即使以后不一定去企业,但可能和企业合作的话,还是建议使用基于 python 的,这样的话,TuneLayer 是很好的选择,因为它是基于 Tensorflow,学习 theano 和 lasagne 的模式编写的。

如果你是工程师,有一个很简单的问题,要很快地完成,以后不再需要碰DL

目前文档做得最好的是 tensorflow , 你若去看 torch, mxnet 的文档,估计看一天都没搞懂什么回事,例子顶多有一个 mnist,要找code只能去github,非常不靠谱。
而tensorflow 呢,若看懂 mnist 那2个例子,你就可以做一些 classification 任务了。如果任务真的很简单,你可以直接用基于tensorflow 开发的高级API。推荐 TuneLayer, tflearn, kears。个人强力推荐 keras!

如果你是工程师,以后要经常使用DL的
若是这个情况,就需要踏实一点了,使用 keras,tflearn 简单是简单,但限制太多了,用到最后会发现封装得太死,很多东西不能自己管理。这里强烈推荐 TuneLayer,它的前身是 tensorlayer。

如果你是做嵌入式工程的
那么你可能在考虑 Nvidia tk1 tx1 ,或者未来的 TPU、UPU吧?那么请选择基于 tensorflow 开发的API。

如果你是做分布式工程的
那么你只要考虑 TensorFlow 和 Mxnet 就可以了。
TensorFlow 是python based 的,有google 大腿。Mxnet 啥语言都支持,主要由民间贡献者支持。
具体区别,需要请其它分布式大神回答~~
阅读全文
0 0
原创粉丝点击