Гессен функции черного ящика, использующей Pytorch

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

У меня есть очень сложная многомерная функция со скалярными значениями, реализованная на Python, которая использует функции Pytorch (на самом деле это композиция нейронной сети и операций, которые зависят от выходных данных из сети), и я хочу найти вектор градиента и матрицу Гессе эта функция в определенных точках. Есть ли альтернативы, кроме numdifftools, который имеет конечную разницу и не очень быстр и точен при большом размере ввода? Что-то, что кажется многообещающим, - это torch.autograd, который, как я считаю, используется для вычисления градиента нейронных сетей, однако может ли он вычислить градиент и гессиан любой функции черного ящика, которая запускает код Pytorch? Любой вклад приветствуется!


person Longti    schedule 24.12.2018    source источник
comment
В целом да, но я никогда не пробовал это делать, поэтому не могу подробно рассказать. Возможно, это будет полезно?   -  person Jatentaki    schedule 25.12.2018
comment
Отвечает ли это на ваш вопрос? Наиболее эффективное вычисление Якобиана / Гессе в PyTorch   -  person iacob    schedule 04.04.2021