OutOfMemoryError: CUDA out of memory. Tried to allocate 2.00 MiB (GPU 0; 11.76 GiB total capacity; 11.59 GiB already allocated; 1.81 MiB free; 11.62 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 在嗯么解决这个问题
时间: 2024-02-17 21:27:05 浏览: 17
这个问题出现在使用PyTorch时显存不足,可以尝试以下几种方法来解决:
1. 减小batch size: 减小每次训练的数据量,可以有效减少显存的占用。
2. 减小模型大小:可以尝试减小模型的大小,如减小网络层数、减小每层的隐藏单元数等。
3. 使用更大的显存:如果使用的显卡显存较小,可以考虑更换显卡,或者使用多个显卡进行并行计算。
4. 使用混合精度训练:可以使用混合精度训练(Mixed Precision Training),将模型参数的精度降低一些,可以减少显存的使用。
5. 设置max_split_size_mb:可以尝试设置max_split_size_mb参数,来避免显存碎片化,具体可以参考PyTorch官方文档中的Memory Management部分。
相关问题
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 2.00 GiB total capacity; 1.67 GiB a
vailable; 40.00 KiB already allocated; 19.94 MiB free; 4.00 MiB cached)
This error message indicates that the program tried to allocate 20.00 MiB of memory on the GPU, but there was not enough memory available. The GPU has a total capacity of 2.00 GiB, but only 1.67 GiB was available at the time. 40.00 KiB had already been allocated, leaving only 19.94 MiB free. Additionally, 4.00 MiB had been cached, which means that it was reserved for future use but not currently in use.
To resolve this issue, you can try one or more of the following:
1. Reduce the size of the input data or the size of the model being used. This will reduce the amount of memory required.
2. Increase the GPU memory capacity. If possible, add more memory to the GPU or switch to a GPU with a larger memory capacity.
3. Use a smaller batch size. This will reduce the amount of memory required for each iteration.
4. Use gradient checkpointing. This technique allows the model to compute gradients for small subsets of parameters at a time, reducing the amount of memory required.
5. Use mixed precision training. This technique allows the model to use 16-bit floating point numbers instead of 32-bit, reducing the amount of memory required.
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 148.00 MiB (GPU 0; 4.00 GiB total capacity; 5.23 GiB already allocated;
torch.cuda.OutOfMemoryError是指在使用PyTorch时,尝试在CUDA显存中分配内存时出现错误,因为显存已经被其他操作占用完毕。其中引用和引用提到了相同的错误信息和可能的解决方法。根据这些引用内容,可以推测解决此错误的方法是通过设置max_split_size_mb参数来避免内存碎片化。你可以参考PyTorch的Memory Management和PYTORCH_CUDA_ALLOC_CONF文档了解更多的信息。引用也提到了类似的错误信息,但给出了不同的显存容量和已分配内存的数值。这说明出现该错误的具体原因可能因系统配置不同而有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [成功解决torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 86.00 MiB (GPU 0; 2.00 ...](https://blog.csdn.net/qq_41185868/article/details/131015210)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [报错记录torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 90.00 MiB (GPU 0; 7.93 ...](https://blog.csdn.net/gongkeguo/article/details/127674524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]