环境:
操作系统:Windows 10
内存:16G
显卡:3060(12G)
torch版本:1.10.2 + cuda11.3
torchvision版本:0.11.3 + cuda11.3
cuda版本:11.3 (英伟达官网安装的)
遇到的问题:
1)batch_size=2时正常训练,batch_size=4时,pycharm直接卡死闪退,重新打开后直接闪退,必须重启才行。或者就报错:Process finished with exit code -1073741819 (0xC0000005)。此时pycharm无法运行,只能重启电脑。
2)报错:CUDA out of memory,然而显存只占用了2G左右。
3)加载完模型后,一直卡在 开始训练 这里,显存占用一直处于0.6G。
原因和解决办法:
原因:实际上是 虚拟内存不足 的问题,只有当虚拟内存设置好了,显存就正常占用了。
解决办法:选择C盘,点“系统管理的大小”,重启电脑,解决。
注: DataLoader()里的 pin_memory和num_workers和这个问题无关,不过num_workers设置过大时,也会报错。
我的疑问??
为什么需要这么大的虚拟内存?在加载数据的时候,内存RAM也只占用了8G左右,但虚拟内存就占了18G左右,为什么不是先分配RAM,然后再分配虚拟内存呢?求解答。