как управлять оперативной памятью gpu в Google colab?

#python #pytorch #google-colaboratory

#python #pytorch #google-colaboratory

Вопрос:

Когда я запускаю некоторые модели DL, написанные с помощью PyTorch, у меня возникает ошибка:

Ошибка времени выполнения: CUDA не хватает памяти. Пытался выделить 108,00 Мбайт (GPU 0; общая емкость 14,73 гигабайт; 13,68 гигабайт уже выделено; 11,88 Мбайт свободно; 13,78 Гигабайт зарезервировано PyTorch).

Это произошло, когда я пытаюсь отследить некоторые ошибки и запускать cell снова и снова. Есть ли какие-то лайфхаки, чтобы избежать этого?

Вот пример кода (я выделил ячейки в Google colab):

 def train(...):
  ...
  assert False
  ...
 
 model = SegNet().to(device)
 
 max_epochs = 20
optim = torch.optim.Adam(model.parameters(), lr=10e-5)
train(model, optim, bce_loss, max_epochs, data_tr, data_val)
 

Я нашел operator del , чтобы я мог сделать

 del model
 

после использования model . Но как я могу управлять памятью, используя после ручной или какой-либо ошибки assert ?

Комментарии:

1. Вы не предоставили никакой информации или кода. Поэтому единственный совет — использовать меньше оперативной памяти процессора.

2. @KlausD. Я думаю, вы имели в виду «GPU RAM»?

Ответ №1:

Оператор del X_batch сразу после y_pred = model(X_batch...) этого мне немного помогает. Функция .backward() использует самую большую кучу оперативной памяти, но я ничего не могу с этим поделать. Я полагаю, что colab.google не имеет отношения к использованию оперативной памяти.