五大主流深度学习框架比较分析:MXNET是最好选择

符号构架

符号计算构架(如 CNTK,MXNET,TensorFlow,Theano)被定义为一个向量运算符的符号图,例如矩阵的加法/乘法或卷积。一个层仅是这些运算符的组合。构造块(运算符)良好的粒度允许用户在不需要在低级语言(如 Caffe)中实现的情况下,开发新的复杂层类型。

在我的工作中,我使用了不同的符号计算框架。然而,我发现由于每个框架的设计和目前的实现方法不同,它们都有各自的优缺点,没有一个框架能完美地满足所有的需要。针对我的需要,我选择使用 Theano。

 

非符号构架优点:

  • torch、caffe 这样的非符号(命令式)神经网络构架的计算部分的设计非常相似。

  • 根据可表达性,设计良好的命令构架也能揭露类图接口(例如 torch/nngraph)。

非符号架构缺点:

  • 命令构架主要的缺点实际上在于人工优化。例如,就地操作必须要人工实现。

  • 大多命令构架设计得不够好,比不上符号构架的可表达性。

符号构架优点:

  • 符号构架可能可以从依赖图中自动推导优化。

  • 一个符号构架可以利用更多内存复用机会,这点 MXNET 做得很好。

  • 符号构架能自动计算最佳进度表。详情请参照 TensorFlow 白皮书

符号构架缺点:

  • 现存可用开源符号构架的表现仍逊色于命令构架。

符号构架缺点:

  • 现存可用开源符号构架的表现仍逊色于命令构架。

posted @ 2022-08-17 14:01  瘋耔  阅读(234)  评论(0编辑  收藏  举报
跳至侧栏