FederatedAI / Practicing-Federated-Learning

Apache License 2.0
795 stars 245 forks source link

RuntimeError: CUDA out of memory. #4

Open YIN-jw opened 3 years ago

YIN-jw commented 3 years ago

您好: 我在使用pytorch跑程序时,出现了RuntimeError: CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 8.00 GiB total capacity; 5.69 GiB already allocated; 84.25 MiB free; 5.72 GiB reserved in total by PyTorch)的问题,网上查找资料说是爆显存了,epoch和batch_size太大机器受不了。因此我将conf.json文件中"global_epochs" : 5,"local_epochs" : 2,"batch_size" : 2,仍然会出现错误。 请问有什么好的解决办法吗,十分感谢!

innovation-cat commented 3 years ago

你的机器是不是还跑其它什么程序?你看看输出,只有84M空余,有5.69G已经使用,当然不够用了

YIN-jw commented 3 years ago

你的机器是不是还跑其它什么程序?你看看输出,只有84M空余,有5.69G已经使用,当然不够用了

您好,十分感谢您的回复,我看了一下任务管理器中的GPU利用率,刚开始跑程序的时候是: GPU基本上没有使用; 1

运行了一段时间开始在客户端进行训练时GPU内存基本上就占满了; Q6B9`HED0F%8Y8CPI3E5R33

最后爆内存后显示错误,GPU又恢复原来的样子: 5``HU2XTUR8VYIBX$BB@~~B

就是在跑这个程序的时候出现的问题,请问您知道怎么处理吗?

innovation-cat commented 3 years ago

不太清楚你改动了代码的什么地方,不过看你的截图,你好像将模型改为vgg16,原始代码用的模型是resnet18,vgg16对内存的要求要比resnet18大很多,改回resnet18。

YIN-jw commented 3 years ago

不太清楚你改动了代码的什么地方,不过看你的截图,你好像将模型改为vgg16,原始代码用的模型是resnet18,vgg16对内存的要求要比resnet18大很多,改回resnet18。

换成resnet18就可以出来结果了,感谢您的帮助,谢谢!