728x90
반응형
Pytorch 기반의 딥러닝 모델 사용 도중, torch.utils.data.Dataloader로 정의된 dataloader의 next()함수를 호출하여 데이터를 로딩하는 과정에서 상당히 오랜 시간이 걸렸고, ctrl + C로 중단시켜 보니 아래와 같은 오류가 뜬다.
^CTraceback (most recent call last):
File "train.py", line 243, in <module>
main(args)
File "train.py", line 165, in main
image_tensors, labels = train_dataset.get_batch()
File "dataset.py", line 156, in get_batch
image, text = data_loader_iter.next()
File "/opt/conda/envs/panpp/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 576, in __next__
idx, batch = self._get_batch()
File "/opt/conda/envs/panpp/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 543, in _get_batch
success, data = self._try_get_batch()
File "/opt/conda/envs/panpp/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 511, in _try_get_batch
data = self.data_queue.get(timeout=timeout)
File "/opt/conda/envs/panpp/lib/python3.6/queue.py", line 173, in get
self.not_empty.wait(remaining)
File "/opt/conda/envs/panpp/lib/python3.6/threading.py", line 299, in wait
gotit = waiter.acquire(True, timeout)
KeyboardInterrupt
free(): invalid size
Aborted (core dumped)
아래 블로그를 통해 해결 방법을 찾을 수 있었고, 결론은 threading과정에서 데이터를 읽어오는 시간이 매우 오래 걸려 생기는 문제라 한다. 내가 코드를 잘못 옮긴 줄 알았는데 어이없게도 단순히 python version에서 오는 bug 문제였다.
나 같은 경우엔 python3.6을 사용하고 있었고, 이 문제를 해결하기 위해선 python을 3.8로 업그레이드 해줘야 해결되었다.
728x90
반응형
'머신러닝 > Pytorch 딥러닝 기초' 카테고리의 다른 글
pytorch dataloader(dataset.ImageFolder) 내 파일 경로 가져오기 (0) | 2023.05.08 |
---|---|
LR scheduler 추천 : Cosine Annealing Warmup Restarts (0) | 2023.03.31 |
[Pytorch-기초강의] 9. 주어진 환경과 상호작용하며 성장하는 DQN (2) | 2021.06.18 |
[Pytorch-기초강의] 8. 경쟁하며 학습하는 GAN (3) | 2021.06.13 |
[Pytorch-기초강의] 7. 딥러닝을 해킹하는 적대적 공격 (0) | 2021.06.13 |