Объединение градиентов для многослойных целей с множественными моделями в Pytorch - PullRequest
0 голосов
/ 08 мая 2019

У меня есть 2-х модельная сеть с первой моделью, принимающей входные данные, и после пары скрытых слоев, создающих «среднее представление», которое подается во вторую модель, которая после пары скрытых слоев создает выходное представление.

У каждой модели есть цель для расчета собственных потерь, но я также хочу, чтобы небольшая часть ошибки второй модели возвращалась к первой модели.

Используя "сохранить градиент", я могу получить градиент ошибки для возврата к первой модели, но я не знаю, как уменьшить его в первой сети с помощью дополнительной скорости обучения, такой как параметр, который применяется тольков первую сеть.

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

loss1.backward(retain_graph=True)
loss2.backward()
opt1.step()
opt2.step()
...