Как проверить причину CUDA root из-за нехватки памяти в середине обучения? - PullRequest
1 голос
/ 12 февраля 2020

Я бегу Роберту на обнимающемся лице language_modeling.py. После выполнения 400 шагов я внезапно получаю CUDA из-за проблемы с памятью. Не знаю, как с этим бороться. Можете ли вы помочь? Спасибо

Ответы [ 2 ]

2 голосов
/ 12 февраля 2020

Это может иметь несколько причин. Если вы получите его только после нескольких итераций, возможно, вы не освободите вычислительные графы. Используете ли вы loss.backward(retain_graph=True) или что-то подобное?

Кроме того, когда вы запускаете логический вывод, обязательно используйте

with torch.no_grad():
    model.forward(...)

В противном случае вычислительные графики также сохраняются там и, возможно, никогда освобожден, так как вы никогда не звоните им backward().

0 голосов
/ 21 февраля 2020

Моя проблема заключалась в том, что я не проверял размер памяти GPU по сравнению с размерами выборок. У меня было много довольно маленьких выборок и после многих итераций большой. Виноват. Спасибо и не забудьте проверить эти вещи, если это случится с вами.

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