Удаляй модель из 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()