今天用pytorch训练神经网络时,出现如下错误:
RuntimeError: CUDA out of memory. Tried to allocate 144.00 MiB (GPU 0; 2.00 GiB total capacity; 1.29 GiB already allocated; 79.00 MiB free; 1.30 GiB reserved in total by PyTorch)
明明 GPU 0 有2G容量,为什么只有 79M 可用? 并且 1.30G已经被PyTorch占用了。这就说明PyTorch占用的GPU空间没有释放,导致下次运行时,出现CUDA out of memory。
解决方法如下:
(1) win系统下找到 Anaconda Powershell Prompt
(2) 在shell窗口下输入
nvidia-smi
这条命令是查看系统进程的,会显示GPU的使用情况,以及占用GPU的应用程序
(3) 找到运行程序占用, 输入taskkill -PID 进程号 -F
结束占用进程,比如taskkill -PID 572
即可释放GPU的占用空间。
(4) 用nvidia
查看一下结果,你会发现GPU被占用的空间大大降低,这样我们就可以愉快地使用GPU运行程序了