pytorch 出现 OSError:[Errno 12] 无法分配内存

问题描述 投票:0回答:1

我正在尝试训练我的深度学习模型,但在第二个纪元开始时出现错误:

Traceback (most recent call last):
  File "train.py", line 61, in <module>
    trainer.train()
  File "/poolz2/fanliang/SfMNeXt-Impl/trainer.py", line 247, in train
    self.run_epoch()
  File "/poolz2/fanliang/SfMNeXt-Impl/trainer.py", line 260, in run_epoch
    for batch_idx, inputs in enumerate(self.train_loader):
  File "/home/rdfzzt/miniconda3/envs/pytorch/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 435, in __iter__
    return self._get_iterator()
  File "/home/rdfzzt/miniconda3/envs/pytorch/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 381, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
  File "/home/rdfzzt/miniconda3/envs/pytorch/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1034, in __init__
    w.start()
  File "/home/rdfzzt/miniconda3/envs/pytorch/lib/python3.7/multiprocessing/process.py", line 112, in start
    self._popen = self._Popen(self)
  File "/home/rdfzzt/miniconda3/envs/pytorch/lib/python3.7/multiprocessing/context.py", line 223, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "/home/rdfzzt/miniconda3/envs/pytorch/lib/python3.7/multiprocessing/context.py", line 277, in _Popen
    return Popen(process_obj)
  File "/home/rdfzzt/miniconda3/envs/pytorch/lib/python3.7/multiprocessing/popen_fork.py", line 20, in __init__
    self._launch(process_obj)
  File "/home/rdfzzt/miniconda3/envs/pytorch/lib/python3.7/multiprocessing/popen_fork.py", line 70, in _launch
    self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory

我尝试导入 gc,删除输入

deep-learning pytorch
1个回答
0
投票

原因可能是“DataLoader”,如果你的电脑内存较小,你应该将

num_workers
设置为
0
,如下所示:

dataloader = DataLoader(dataset, batch_size=Int, shuffle=Bool, sampler=None, num_workers=0, collate_fn=default_collate, pin_memory=False, drop_last=False)

如果您能提供更多信息,我们可以提供更多帮助。

© www.soinside.com 2019 - 2024. All rights reserved.