huguyuehuhu/HCN-pytorch

OSError: [Errno 12] Cannot allocate memory

bassyess opened this issue · 1 comments

Hello,
I am getting Cannot allocate memory error,I don't understand why this error occurs. Is this related to my server memory configuration?
Traceback (most recent call last):
File "main.py", line 524, in
loss_fn, metrics, params, args.model_dir,logger, params.restore_file)
File "main.py", line 402, in test_only
train_metrics, train_confusion_meter = evaluate(model, loss_fn, train_dataloader, metrics, params, logger)
File "main.py", line 161, in evaluate
for data_batch, labels_batch in dataloader:
File "/home/messor/.pyenv/versions/shinerio-python3.6.4-env/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 501, in iter
return _DataLoaderIter(self)
File "/home/messor/.pyenv/versions/shinerio-python3.6.4-env/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 289, in init
w.start()
File "/home/messor/.pyenv/versions/3.6.4/lib/python3.6/multiprocessing/process.py", line 105, in start
self._popen = self._Popen(self)
File "/home/messor/.pyenv/versions/3.6.4/lib/python3.6/multiprocessing/context.py", line 223, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "/home/messor/.pyenv/versions/3.6.4/lib/python3.6/multiprocessing/context.py", line 277, in _Popen
return Popen(process_obj)
File "/home/messor/.pyenv/versions/3.6.4/lib/python3.6/multiprocessing/popen_fork.py", line 26, in init
self._launch(process_obj)
File "/home/messor/.pyenv/versions/3.6.4/lib/python3.6/multiprocessing/popen_fork.py", line 73, in _launch
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory

Please suggest what I could do to avoid this issue.
Thank You!

@bassyess The error means your memory is not enough to load the whole dataset previously. To be efficient, by default, our code loads the whole dataset into memory before training, refer here. You can just set the parameter self.mmap as True to avoid it.