Как я могу вычислить гессиан функции потерь в MXNet? - PullRequest
0 голосов
/ 01 июля 2018

В данный момент я изучаю MXNet и работаю над проблемой с использованием нейронных сетей. Я заинтересован в наблюдении кривизны моей функции потерь по отношению к весам сети, но, насколько я могу судить, градиенты более высоких порядков не поддерживаются в настоящее время для функций нейронной сети. Есть ли какой-нибудь (возможно хакерский) способ, которым я все еще мог бы сделать это?

1 Ответ

0 голосов
/ 09 июля 2018

Вы можете следить за обсуждением здесь

Суть в том, что не все операторы в настоящее время поддерживают градиенты более высокого порядка.

В 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

Взято из этой ветки форума

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...