-
iter(dataloader) 시 TypeError: cannot pickle 'Environment' objectAI 2020. 12. 14. 15:20
아래의 코드와 같이
리스트에 데이터로더를 iterator로 넣고자하는데
에러가 발생 했다.
_data_loader = torch.utils.data.DataLoader( _dataset, batch_size=_batch_size, shuffle=True, num_workers=int(opt.workers), collate_fn=_AlignCollate, pin_memory=True) self.dataloader_iter_list.append(iter(_data_loader))
TypeError: cannot pickle 'Environment' object
append에 아무런 문제가 없어보이지는데
원인은 데이터로더 생성시 num_workers 값 떄문이다.
num_workers=0으로 해주면 해결된다.
의미는 데이터로드를 할때 몇개의 서브프로세스를 사용 할 것인가인데,
각자의 환경에 맞춰서 값을 설정해줘야한다.
나의 경우 gpu가 없는 맥북프로의 conda 환경이어서 0(메인만사용)으로 해줘야한다.
'AI' 카테고리의 다른 글
[AI] 학습 사이트 추천 10가지 (0) 2021.06.03 How to convert pt to tflite (yolov5 to tensorflow lite) tflite로 변환 (7) 2021.01.19 [ocr] 맥(osx)에 tesseract 설치하기 (used brew) (0) 2020.12.10 AI 기사 스크랩 - 민간이 '인공지능 뉴딜'에 뛰어든 이유 (0) 2020.08.05 [pytorch] MLP model source code by python (0) 2020.04.24