MXNet 与其他深度学习 API 相比的优缺点

obe*_*lix 3 deep-learning caffe tensorflow mxnet pytorch

最近决定学习MXNet,因为我需要用到的一些代码,就是用这个API写的。

但是,我想知道 MXNet 与其他深度学习库相比有哪些优点和缺点。

小智 5

也许考虑 MXNet 的最大原因是它的高性能命令式 API。这是 MXNet 相对于其他平台的最重要优势之一。带有 autograd 的命令式 API 使构建和调试网络变得更加容易和直观。PyTorch 还支持命令式 API,但 MXNet 是唯一支持混合的平台 AFAIK,它有效地允许您将命令式模型转换为符号,以获得与符号 API 相似的性能。这是 Gluon 教程的链接,MXNet 的命令式 API:http ://gluon.mxnet.io/

鉴于您使用的是示例代码,该示例可能是使用符号 API 编写的。在许多 GPU 上训练时,您可能会注意到 MXNet 在符号 API 方面的优势。否则你不会注意到太大的不同(除了可能在某些内存使用方面)。

Tensorflow 确实比 MXNet 提前了一年,因此它拥有更大的用户群,但它只支持符号 API(命令式 API 非常新,仅用于实验),调试网络要困难得多当你遇到问题时。然而 MXNet 很快在功能上赶上了 1.0 版本,我认为 TF 中没有 MXNet 不支持的任何内容。

  • 我真的很喜欢 MXNet 和 Gluon,但毫无疑问,TensorFlows API 比 MXNet 的要完整得多,而且文档也更好。问题不仅仅是社区的规模;显然,与我们在 MXNet 上工作相比,在 TensorFlow 实现上工作的开发人员要多得多。MXNet 还缺少一些重要的基本功能。例如,如果不分叉整个源代码并制作您自己的自定义版本,您就无法在 C++ 中为 MXNet 编写自定义运算符;这使得跨项目共享自定义运算符变得非常困难 (2认同)