はじめに
EMNIST(Extended MNIST)というデータセットがあり,それを用いた実験をPytorchで行おうとした際にEMNISTがダウンロードできないというエラーに陥った際の解決方法を紹介します.
環境
2つの環境で試し,どちらでもうまくいきました
- OS: MacOS / Linux
- python: 3.7.4 / 3.5.1
- torchvision: 0.4.0
原因
データセットへのリンクが切れており,Pytorchでインストールする際にエラーが起こっていました.(こちらにてその旨が書かれています)
実行したこと
torchvision
のIssueにてEMNIST関連があるかみていたところ数日前に開かれたissueを見つけました.
単純にurl先が切れているとのことで,新たなリンク先に変更すれば良いとのことでした.
Pypi
でインストールをしていたため,以下の方法で直接torchvision.datasets.mnist
を書き換えることによって無事インストールが始まりました.
解決方法
単純にtorchvision
パッケージのdatasets/mnist.py
の1行をいじれば良いのですが,インストール方法によってこの場所が異なります.(また,直接パッケージをいじるためあまり良い方法ではないです...)
$ vim ~/.local/pyenv/versions/3.7.4/lib/python3.7/site-packages/torchvision/datasets/mnist.py
これによって開かれたファイルの230行目あたりにEMINST
クラスがあります. def __init__(...)
の
直前にurl
を指定している部分があるので,そこを
url = 'http://www.itl.nist.gov/iaui/vip/cs_links/EMNIST/gzip.zip'
に書き換えるだけです.
最後に
何度かリンクが切れているらしく,上記のurlでは今後上手くいかない可能性があります.
その際はtorchvision
のIssueにて検索することをオススメします.