图片里的标志化的构造和执行
这是一篇解释在图片里面的进行标志化构造和执行的文章。你最好和这篇文章一起阅读 Symbolic API..
标志构成
标志是我们想做的计算的描述。标志构造API生成计算图源来描述计算的需要。下面的图片显示了怎样我们组成标志来描述基本的计算。
标志将被重载(C和E)通过基本的元素级的操作。
构造神经网络
除了精细的操作,mxnet也提供了一个方式来执行大的操作来模拟神经网络里面的层。我们可以使用这些操作符来描述神经网络的构造。
多输入网络的例子
下面是一个构成多个输入网络的例子
绑定和执行标志
当我们需要执行一个标志图。我们可以调用绑定函数来绑定NDArrays到参数节点来得到一个Executor
你可以调用Executor.Forward来得到输出结果,把NDArrays作为输入。
绑定多个输出
你可以使用mx.symbol.Group来组合symbols到一起,然后把它们绑到一起来得到两个的输出。
但是一直要记住,只有绑定了你想要的,系统才会给你做你想要的操作。
计算梯度
你可以指定梯度持有者,然后调用Executor.backward在Executor.forward之后,这将会返还给你相应的梯度。
神经网络的简单绑定接口
有时,把参数传给绑定函数是很繁琐的。尤其当你绑定一个大的图源就像神经网络。Symbol.simple_bind提供一个方式来简化这个程序。你只要指定输入的数据的大小,函数将会自动为你分配参数,然后给你绑定执行器。
附属状态(Auxiliary States)
附属状态和参数类似,但是你不能得到它们的梯度。这些状态可能不是计算的一部分,但是对于追踪是很有帮助的。
更多消息
你可以参考 Symbolic API 和 Python Documentation.