五大主流深度学习框架比较分析:MXNET是最好选择
符号构架
符号计算构架(如 CNTK,MXNET,TensorFlow,Theano)被定义为一个向量运算符的符号图,例如矩阵的加法/乘法或卷积。一个层仅是这些运算符的组合。构造块(运算符)良好的粒度允许用户在不需要在低级语言(如 Caffe)中实现的情况下,开发新的复杂层类型。
在我的工作中,我使用了不同的符号计算框架。然而,我发现由于每个框架的设计和目前的实现方法不同,它们都有各自的优缺点,没有一个框架能完美地满足所有的需要。针对我的需要,我选择使用 Theano。
非符号构架优点:
-
像 torch、caffe 这样的非符号(命令式)神经网络构架的计算部分的设计非常相似。
-
根据可表达性,设计良好的命令构架也能揭露类图接口(例如 torch/nngraph)。
非符号架构缺点:
-
命令构架主要的缺点实际上在于人工优化。例如,就地操作必须要人工实现。
-
大多命令构架设计得不够好,比不上符号构架的可表达性。
符号构架优点:
-
符号构架可能可以从依赖图中自动推导优化。
-
一个符号构架可以利用更多内存复用机会,这点 MXNET 做得很好。
-
符号构架能自动计算最佳进度表。详情请参照 TensorFlow 白皮书。
符号构架缺点:
-
现存可用开源符号构架的表现仍逊色于命令构架。
符号构架缺点:
-
现存可用开源符号构架的表现仍逊色于命令构架。
作者:柒月
Q群 :2122210(嵌入式/机器学习)