Как проверить основную причину проблемы нехватки памяти CUDA в середине обучения?
Я бегу с Робертой на обнимающемся лице language_modeling.py
. После выполнения 400 шагов у меня внезапно возникает проблема нехватки памяти CUDA. Не знаю, как с этим бороться. Не могли бы вы помочь? Благодарность
2 ответа
Моя проблема заключалась в том, что я не проверял размер моей памяти графического процессора в сравнении с размерами образцов. У меня было много довольно маленьких образцов, а после многих итераций - один большой. Виноват. Спасибо и не забудьте проверить эти вещи, если это случится с вами.
Это может иметь несколько причин. Если вы получите его только после нескольких итераций, возможно, вы не освободите вычислительные графы. Вы используетеloss.backward(retain_graph=True)
или что-то подобное?
Кроме того, когда вы выполняете вывод, обязательно используйте
with torch.no_grad():
model.forward(...)
В противном случае вычислительные графики также сохраняются там и потенциально никогда не освобождаются, поскольку вы никогда не вызываете backward()
на них.