赞
踩
RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 8.00 GiB total capacity; 6.77 GiB already allocated; 0 bytes free; 7.24 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
跑代码遇到了这个错误,很烦。
问了下GPT
这个问题是由于CUDA内存不足导致的。你可以尝试以下几种方法解决这个问题:
1. 减小批次大小:减小每个训练批次的大小,可以减少对CUDA内存的需求量。可以尝试减小批次大小并重新运行代码。
2. 减小模型参数:如果你的模型非常庞大,可以尝试减小模型的参数量。可以通过减少模型的宽度或深度来减小参数数量。
3. 使用更小的模型:尝试使用更小的模型或者使用轻量级模型来减小对CUDA内存的需求。
4. 清理CUDA缓存:在每个训练迭代之后,使用torch.cuda.empty_cache()来清理CUDA缓存,释放一部分已经分配的内存。
5. 限制CUDA的显存使用:可以使用torch.cuda.set_per_process_memory_fraction()来限制CUDA的显存使用。这将确保你的模型不会占用太多显存,从而避免出现内存不足错误。
6. 使用更高容量的GPU:如果你的任务对显存要求较高,可以尝试使用显存容量更大的GPU。
7. 调整PyTorch的内存管理配置:你可以根据PyTorch的文档中的指导,调整内存管理配置,以解决内存不足的问题。
如果以上方法都不起作用,可能需要考虑使用更强大的计算资源,如云服务器或更高规格的GPU来解决CUDA内存不足的问题。
也看了一些其他的博客,应该是模型比较大,就换了个模型
从base版本换成了tiny版本,参数量从87M下降到28M
最后成功运行了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。