如何获得各种功能的mxnet后端代码?

时间:2019-02-08 08:58:14

标签: mxnet

当我们调用forward时,我试图了解mxnet的内部流程。有什么方法可以获取mxnet的源代码?

1 个答案:

答案 0 :(得分:1)

这实际上取决于符号图的外观。我假设您将MXNet与Python(Python documentation)结合使用。您可以在此处选择使用MXNet符号库或Gluon库。

现在,您正在问是否可以检查代码,是的,您可以find it on GitHub。文件夹python包含python接口,文件夹src包含所有MXNet源。 forward上发生的事情最终由MXNet执行引擎定义,该引擎跟踪操作员和神经网络层的输入/输出依赖性,并在不同设备(CPU,GPU)上分配内存。 There is a general architecture documentation for this

我想您对每一个操作都感兴趣,例如argmax(归约),tanh(一元数学操作)或convolution(复杂神经网络操作)。您可以在operator folder of MXNet中找到。这本身就需要完整的文档,并且有一个专门讨论MXNet的here论坛,但是我将简要介绍一下:

  • (符号)执行图中的每个操作都需要定义的forwardbackward操作。它还需要定义其输出形状,以便可以将其与其他操作链接在一起。如果该操作员需要权重,则需要定义所需的内存量,以便MXNet可以分配它。
  • 每个操作都需要以下几种实现方式:a)CPU b)GPU(CUDA)c)cuDNN周围的包装器
  • 所有一元数学运算都遵循相同的模式,因此它们在mshadow_op.h(例如relu)中以相似的方式定义。

根据您的广泛问题,我能告诉您的一切。