框架篇

Tensorflow(theano)

截至今日,tensorflow可以说已经胜出theano,具体的对比可以查阅资料,对于都是构建图计算的模型,tensorflow主要胜在资源丰富.

目前而言,裸写tensorflow也并非什么难事,可是鉴于我们只是想改动某些特性跑实验,并不想花大量时间写代码.特别是看到复用性很差的网络搭建时,总想自己写函数集成模块.然而并没有必要这么做,因为这个工作已经有很多了.

基本上,high level的api以tensorflow为back end有:

1.tensorflow自家的TF.slim,在0.11版本以后可用,提供了最新的框架的实现.不过并不是特别新手友好,而且没有说明文档,只有网页上有一页的说明.所以几乎还是在裸写tensorflow.

2.keras,后端可以选择是theano和tensorflow,如果是theano+keras转tensorflow的话可以无缝转过来.集成度非常高.人气高.更新速度快.

3.tflearn,后端只能是tensorflow,集成度非常高.人气较高.更新速度快.

4.tensorlayer,集成度中等,人气较低.更新速度一般.

我一项是认为选择一个同样功能的工具要看其人气,人气保证了作者不会弃更.

torch,MXnet,caffe

MXNet可以说是caffe的进化版,由于UCB维护caffe的人已经几乎不再,FB在努力开发caffe2.0,除了一些很有继承性的工作(例如RCNN)在caffe发展外,MXNet应当是更好的一个选择。MXnet相比tensorflow占用显存更小,训练速度更快,可是对于高度自定义的情况,往往需要用户打开C文件去修改后源码编译,而tensorflow的相关操作几乎都可以在python API中完成,毕竟两者定位不同,tf在做的是ML的通用工具包,而MX是一个深度学习导向的工具包。一句话总结tf牺牲效率换取了灵活性,适合中等玩家使用,mx等操作简单但是高度自定义困难,适合新手和高手。我个人倾向于在学习与研究阶段使用tensorflow,调试起来更容易,而竞赛或者追求务实之时选择MXNet/caffe。

至于torch没有使用过不予置评,pytorch最近出了,抽空真的想去比一下torch和tensorflow的灵活性跟速度。

CNTK

可以说是MS和VS爱好者的福音.在windows和vs2015下就可以使用,不用考虑什么源码编译,不用搞麻烦的乌版图.虽然会被诟病码农用什么windows,可是用的顺手就行了,管谁说什么呢.

results matching ""

    No results matching ""