Pytorch遇到OSError: [Errno 12] Cannot allocate memory问题的解决方案

1.实验环境:一张1080Ti显卡(11G),2个16G内存,Linux18.04系统
2.遇到问题:pytorch运行深度学习模型遇到报错如下:
xx@xx-H310M-A-V2:~/Documents/NTS-Net-master$ python train.py

Traceback (most recent call last):
File “train.py”, line 58, in
for i, data in enumerate(trainloader):
File “/home/zls/anaconda3/lib/python3.6/site-packages/torch/utils/data/dataloader.py”, line 193, in iter
return _DataLoaderIter(self)
File “/home/zls/anaconda3/lib/python3.6/site-packages/torch/utils/data/dataloader.py”, line 469, in init
w.start()
File “/home/zls/anaconda3/lib/python3.6/multiprocessing/process.py”, line 105, in start
self._popen = self._Popen(self)
File “/home/zls/anaconda3/lib/python3.6/multiprocessing/context.py”, line 223, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File “/home/zls/anaconda3/lib/python3.6/multiprocessing/context.py”, line 277, in _Popen
return Popen(process_obj)
File “/home/zls/anaconda3/lib/python3.6/multiprocessing/popen_fork.py”, line 19, in init
self._launch(process_obj)
File “/home/zls/anaconda3/lib/python3.6/multiprocessing/popen_fork.py”, line 66, in _launch
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory

3.解决方法:使用代码

watch -n 2 nvidia-smi
watch -n 2 free -m

全程监视电脑CPU、GPU,以及物理内存、交换区内存的变化情况,发现并不是内存的原因。找bug未果。
换了一个思路,从出错的代码以及错误提示上来看,是dataloader.py出了问题,于是Google,关键词:dataloader OSError: [Errno 12] Cannot allocate memory
果然有很多人也是由于在dataload的时候出错,找了很多原因:
1、电脑内存原因(已排除)
2、电脑系统线程数量限制:https://blog.csdn.net/m0_37644085/article/details/92795488:修改最大进程数(尝试无效)
3、设置pin_memory=False;(尝试无效)
4、修改多线程数量:设置num_workers为0,问题解决!!!程序可以跑了。

参考博客;https://blog.csdn.net/breeze210/article/details/99679048

引用中提到的错误提示"ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device"表示在安装pytorch时出现了磁盘空间不足的问题。这可能是由于磁盘空间不足导致无法安装所需的包。 要解决这个问题,你可以尝试以下几个方法: 1. 检查磁盘空间:首先,你需要确认你的磁盘确实没有足够的空间。你可以使用命令"df -h"来查看磁盘的使用情况。 2. 清理磁盘空间:如果你发现磁盘空间确实不足,你可以尝试清理磁盘上的一些不必要的文件或者移动它们到其他磁盘上释放空间。你可以删除一些临时文件、旧日志文件或者不再需要的大文件。 3. 扩展磁盘空间:如果清理磁盘空间后仍然无法解决问题,你可以考虑扩展磁盘空间。这可以通过添加新的磁盘、调整分区大小或者使用云存储等方法实现。 通过以上方法,你应该能够解决"ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device"的问题。记得在进行任何磁盘操作之前,备份重要的文件以防止数据丢失。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [CUDA11.2 安装pytorch报错:ERROR: Could not install packages due to an OSError: [Errno 2] No such ...](https://blog.csdn.net/m0_56909995/article/details/124050316)[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* [anaconda安装pytorch时报错PackagesNotFoundError: The following packages are not available from ...](https://download.csdn.net/download/weixin_38621870/13750818)[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 ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值