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