Быстрый расчет гессиана нейронной сети для части набора данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Быстрый расчет гессиана нейронной сети для части набора данных

Сообщение Anonymous »

Мне нужно вычислить следующую формулу
формулу
Это самый быстрый способ вычисления, который я нашел

Код: Выделить всё

for i in range(number_parameters):
aux = self.loss_grad[:, i].detach()
product = torch.sum(aux * self.loss_grad[:, i])
first_term = torch.autograd.grad(product, self.model.parameters(), create_graph=True)
first_term = torch.cat([g.flatten() for g in first_term])
self.grad_sigma_diag[i] = (1/(m-1)) * first_term
Идея состоит в том, чтобы сделать скалярное произведение между элементами наборов данных, а затем дифференцировать

Но поскольку мне нужно выполнить цикл for для вычисления каждой записи, это все еще медленно.
Я не могу понять, как это решить; любая помощь приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/793 ... he-dataset
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»