mxnet中Symbol API 总结《-》

Symbol API 这个包主要是用于提供神经网络的图和自动求导, 一个symbol代表具有多个输出的符号表达,它们是经过运算符和神经网络层的复合,或者矩阵运算。一个运算能取多个输入变量,产生不只一个输出变量,并且还有内部的静态变量,

一个变量或者是作为另一个symbol的输出,或者是后面bind value来用的。

比如

a = mx.sym.Variable('a')
b = mx.sym.Variable('b')
c = 2 * a + b

# 前面可当作是抽象运算,下面才传入数据。并指明用的是cpu还是gpu
e = c.bind(mx.cpu(), {'a': mx.nd.array([1,2]), 'b':mx.nd.array([2,3])})

y = e.forward()

这时候输出 y的话是空,需要这样才可以。y[0].asnumpy()  

Symbol相当于是符号式编程,需要在feed数据之后才会执行,而ndarray是命令式的。

Symbol class 中基本上有类似于ndarray中的所有运算。

比如常见的:

mxnet中Symbol API 总结《-》_第1张图片mxnet中Symbol API 总结《-》_第2张图片

和常见的

mxnet中Symbol API 总结《-》_第3张图片



你可能感兴趣的:(mxnet)