Как проверить основную причину проблемы нехватки памяти CUDA в середине обучения?

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

2 ответа

Решение

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

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

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

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

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

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