2017-10-28 1 views
0

Pytorch에 RNN을 쓰고 있습니다. 나는 0으로 num_workers를 설정하면 나는 세그먼트 오류를 ​​얻을Pytorch DataLoader에서 RNN 메모리 할당 오류가 발생했습니다.

data_loader = torch.utils.data.DataLoader(
    data, 
    batch_size=args.batch_size, 
    shuffle=True, 
    num_workers=args.num_workers, 
    drop_last=True) 

: 나는 다음 코드 줄 수 있습니다. 당신은 당신의 시스템이 RAM에 저장할 수있는 것보다 더 많은 데이터를로드하려고

Traceback (most recent call last): 
File "rnn_model.py", line 352, in <module> 
train_model(train_data, dev_data, test_data, model, args) 
File "rnn_model.py", line 212, in train_model 
loss = run_epoch(train_data, True, model, optimizer, args) 
File "rnn_model.py", line 301, in run_epoch 
for batch in tqdm.tqdm(data_loader): 
File "/home/username/miniconda3/lib/python2.7/site-packages/tqdm/_tqdm.py", 
line 872, in __iter__ 
for obj in iterable: 
File "/home/username/miniconda3/lib/python2.7/site- 
packages/torch/utils/data/dataloader.py", line 303, in __iter__ 
return DataLoaderIter(self) 
File "/home/username/miniconda3/lib/python2.7/site- 
packages/torch/utils/data/dataloader.py", line 162, in __init__ 
w.start() 
File "/home/username/miniconda3/lib/python2.7/multiprocessing/process.py", line 130, in start 
self._popen = Popen(self) 
File "/home/username/miniconda3/lib/python2.7/multiprocessing/forking.py", line 121, in __init__ 
self.pid = os.fork() 
OSError: [Errno 12] Cannot allocate memory 

답변

0

: 나는> 0 num_workers을 설정하면 후 나는 역 추적이있다. 데이터의 일부만로드하거나 현재 배치에 필요한 데이터 만로드하는 데이터 로더를 사용/기록 할 수 있습니다.

0

args를 통해 들어오는 작업자의 일괄 처리 크기 및 수는 무엇이든지 캐스팅되거나 오해됩니다.

인쇄하여 전달한 값이 있는지 확인하십시오.

관련 문제