Variable._execution_engine.run_backward( # Calls into the C++ engine to run the backward pass torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 34.00 MiB (GPU 0; 9.77 GiB total capacity; 8.26 GiB already allocated; 22.69 MiB free; 8.40 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 12:15:18 浏览: 2004
SRC.rar_If..._src verilog
这个错误提示是由于在运行PyTorch反向传播时,GPU的内存不足而导致的。提示中建议您尝试增加GPU内存或者调整PyTorch的内存管理策略来避免这种情况。具体来说,您可以尝试以下操作:
1. 减少模型的批处理大小,以减少每次传输的数据量,从而减少GPU内存的使用量。
2. 禁用梯度计算,在不需要梯度的部分代码中使用 with torch.no_grad(): 来减少计算图的构建和内存占用。
3. 将PyTorch的内存分配策略改为使用“缓存分配器”,可以通过设置环境变量 PYTORCH_CUDA_ALLOC_CONF 来实现。具体来说,您可以将该变量设置为“使用缓存分配器,并且每次分配内存的大小不超过指定的大小”,例如:export PYTORCH_CUDA_ALLOC_CONF=0:4096。这将使用缓存分配器来避免内存碎片,并且每次分配内存的大小不超过4MB。
希望以上方法能够帮助您解决问题。
阅读全文