반응형
오류: IndexError: Caught IndexError in DataLoader worker process 0.

IndexError: Caught IndexError in DataLoader worker process 0.
trainloader를 사용할 때 위와 같은 오류가 발생했습니다.
원인 발견 : batch내에 빈 list가 있을 때
values = [] # <- this is not being used
flags = []
for image, label in zip(images, labellist):
flag = False
if label == 0:
flag = True
flags.append(flag)
examples['flag'] = flags
examples['value'] = values
위와 같이 preprocess를 할 때 (dataset get_item 함수 등에서) collate 대상이 빈 tensor일 때 발생한다
values는 원래 필요했던 example의 속성이었는데 이제 안 쓰게 되면서 빈 리스트를 돌려주게 되었다
필요했지만 이제 필요가 없으므로 지워주면된다.
아래는 고친 코드
flags = []
for image, label in zip(images, labellist):
flag = False
if label == 0:
flag = True
flags.append(flag)
examples['flag'] = flags
위와 달리 빈 리스트로 돌려주는 코드는 아예 제거한 것을 알 수 있다.
반응형