Вторая производная Pytorch застряла между двумя ошибками: буферы были освобождены, а переменная изменчива

У меня есть функция потерь и список весовых матриц, и я пытаюсь вычислить вторые производные. Вот фрагмент кода:

loss.backward(retain_graph=True)
grad_params_w=torch.autograd.grad(loss, weight_list,create_graph=True)

for i in range(layers[a]): 
       for j in range (layers[a+1]): 
          second_der=torch.autograd.grad(grad_params_w[a][i,j], my_weight_list[b], create_graph=True) 

Приведенный выше код работает (на самом деле вторая производная вызывается в отдельной функции, но я поставил ее непосредственно для краткости). Но я совершенно не понимаю, когда использовать график создания и сохранения.

Во-первых: если я не выполняю loss.backward (keep_graph), я получаю сообщение об ошибке A:

RuntimeError: элемент 0 кортежа переменных является изменчивым

Если я использую его, но не помещаю "график" в первую производную, я получаю ошибку B:

RuntimeError: попытка вернуться по графику во второй раз, но буферы уже освобождены. При обратном вызове в первый раз укажите keep_graph = True.

Если я укажу keep_graph = True, я получу ошибку A для второй производной (т.е. в циклах for) независимо от того, помещаю я туда оператор создания графа или нет.

Следовательно, работает только приведенный выше фрагмент, но мне кажется странным, что мне нужен loss.backward и весь оператор создания графа. Может ли кто-нибудь прояснить это мне? Заранее большое спасибо!!

Пожалуйста, разместите Минимальный, полный и проверяемый пример.

Alex 17.05.2018 18:55
Создание фильтров для вашего сайта
Создание фильтров для вашего сайта
Фильтры - удобный инструмент в арсенале веб-дизайнера. Они позволяют изменять элементы на странице с помощью всего нескольких строк кода. Эти...
Применение градиента к изображению с помощью CSS
Применение градиента к изображению с помощью CSS
Здравствуйте, братья и сестры, как дела? Недавно я застрял на применении градиента к изображению. Я применял это много раз, но иногда наши требования...
2
1
606
0

Другие вопросы по теме