Pytorch로 학습을 하다가 OSError: Truncated File Read 라는 에러를 마주했다.
이 에러는 Pillow로 손상된 이미지를 읽었을 때 발생한다. 아마 현재 코드가 pillow를 쓰고 있을 것이다.
데이터가 너무 많아서 뭐가 문제인지 몰라 이미지를 하나하나 다 읽어봐야 했다.
데이터가 몇십, 몇백만장 된다면 ray나 multiprocessing을 추천한다.
이미지를 다 읽어보고 이상한 데이터를 찾아내 이미지를 열어보니 아래와 같이 손상이 된 이미지였다. 역시 무작정 데이터셋을 신뢰하는건 나의 삽질에 큰 도움이 된다.
휴...
아래 함수를 잘 적용하면 손상된 이미지를 찾는데에 도움이 될 것이다. 이미지 경로를 glob으로 죄다 긁어서 함수에 넣어주면 된다.
def truncated_check(img_paths)
for img_path in img_paths:
try:
img = Image.open(img_path)
img = np.asarray(img)
except OSError:
print(img_path)
도움이 되셨다면 아무 광고나 클릭 한 번 부탁드립니다👍