第一种方式:
利用开子进程的方式进行模型对图像处理,子进程任务执行结束,达到显存释放的目的。此方法可以用以下方式接收子进程执行后返回的结果,缺点是开子进程消耗比较大时间较慢。
manager = multiprocessing.Manager() result_dict = manager.dict() # result_dict用于获取多进程中函数的返回值 p = multiprocessing.Process(target=模型运算方法, args=(参数, result_dict,)) p.start() p.join() result = result_dict["字典KEY"]
第二种方式:
在模型执行方法正下方加入此行代码 torch.cuda.empty_cache()
查看显存使用情况命令
nvidia-smi