Удаляй модель из gpu

Я хочу сделать перекрестную проверку в моем проекте, основанном на Pytorch. И я не нашел никакого метода, который предоставил pytorch, чтобы удалить текущую модель и очистить память GPU. Не могли бы вы сказать, как я могу это сделать?

2 ответа

Освобождение памяти в PyTorch работает так же, как и в обычном сборщике мусора Python. Это означает, что когда все ссылки на Python-Object исчезнут, он будет удален.

Вы можете удалить ссылки, используя del оператор:

del model

Вы должны убедиться, что нет ссылки на соответствующий объект, иначе память не будет освобождена.

Так что, как только вы удалили все ссылки вашего model, он должен быть удален, а память освобождена.

Если вы хотите узнать больше об управлении памятью, вы можете посмотреть здесь: https://pytorch.org/docs/stable/notes/cuda.html

Я предпочитаю следовать приведенным ниже шагам, а не просто делатьdel model_object

      model_object = My_Network().cuda()

del model_object  #deleting the model 


# model will still be on cache until its place is taken by other objects so also execute the below lines
import gc         # garbage collect library
gc.collect()
torch.cuda.empty_cache() 
Другие вопросы по тегам