MXNet 打印中间符号值

MXNet print intermediate symbol values

我如何找到 MXNet 符号中保存的实际数值。

假设我有,

x = mx.sym.Variable('x')
y = mx.sym.Variable('y')
z = x + y, 

如果 x = [100,200] 且 y=[300,400], 我要打印:

z = [400,600],

有点像tensorflow的eval()方法

环顾四周后,我发现您可以通过以下方式完成此操作:

x = mx.sym.Variable('x')
y = mx.sym.Variable('y')
z = x + y
executor = z.bind(mx.cpu(), {'x': mx.nd.array([100,200]), 'y':mx.nd.array([300,400])})
output = executor.forward()

会给你 'output':

[<NDArray 2 @cpu(0)>]

打印实际数值输出:

print output[0].asnumpy()
array([ 400.,  600.], dtype=float32)