如何计算MXNet中损失函数的粗麻布?

时间:2018-07-01 19:04:47

标签: python neural-network gradient data-science mxnet

此刻我正在学习MXNet,并且正在使用神经网络解决问题。我有兴趣观察我的损失函数相对于网络权重的曲率,但最好的是,我可以说目前神经网络函数不支持更高阶的梯度。我有什么办法(可能是hacky)仍然可以做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以关注讨论here

要点在于,目前并非所有运算符都支持高阶梯度。

在Gluon中,您可以尝试以下操作:

with mx.autograd.record():
  output = net(x)
  loss = loss_func(output)
  dz = mx.autograd.grad(loss, [z], create_graph=True)  # where [z] is the parameter(s) you want

dz[0].backward()  # now the actual parameters should have second order gradients

从此forum thread

拍摄