我正在尝试训练我的深度学习模型,但在第二个纪元开始时出现错误:
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,删除输入
原因可能是“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)
如果您能提供更多信息,我们可以提供更多帮助。