mnist를 이용한 pytorch 예제 프로그램을 돌려보려고 하는데, 아래와 같이 "File not found or corrupted" 에러를 내며 다운로드 하지 못하는 경우가 있다. (아래와 같은 코드를 이용해서 다운로드 할 수 있다.)
from torchvision import datasets
from torchvision.transforms import ToTensor
train_data = datasets.MNIST(
root = 'data',
train = True,
transform = ToTensor(),
download = True,
)
mnist 다운로드 받는 mirror 사이트의 오류로 보이며 아래처럼 간단한 소스 수정 후 (mirror 사이트 우선 순위 변경), jupyter notebook을 재 실행 했더니 정상적으로 다운로드 되었다. 수정은 간단했지만 하루를 googling 한 것 같다.
기본으로 깔리는 pytorch 패키지 안에 mnist 다운 받는 site들이 몇개 들어 있고 이 중 가장 먼저 시도하는 site가 문제가 있다. 좀 더 자세히 보면, torchvision의 mnist.py의 소스를 보면 아래와 같이 mirrors 사이트가 구성 되어 있고, 첫번째로 yann.lecun.com으로 되어 있는데, 어떤 사유로 제대로 다운로드 되지 못하는 문제가 있는 것 같다. 그래서 두번째인 ossci-dataset.s3.amazonaws.com/mnist를 먼저 찾아보도록 우선 순위를 변경했더니 정상 적으로 다운로드 되었다. 나 같은 경우 첫번째를 주석처리 했다.
파일위치 : anaconda3/envs/pytorch_p39_cuda113/lib/python3.9/site-packages/torchvision/datasets/mnist.py
(* 환경에 따라 다를 수 있다. grep -rn mnist.py로 검색을 해보자. )
mirrors = [
# 'http://yann.lecun.com/exdb/mnist/',
'https://ossci-datasets.s3.amazonaws.com/mnist/',
]
wow !!
댓글 영역