我試着使用torchvison下載mnist數據集,但是由於是外國的站點,相信不只是mnist數據集,其他的數據集也可能遇到下載不了或者下載速度很慢的情況。cifar10/100也可以按照這樣的方法進行下載
但是呢,很多人已經從外國的網站下載過了,你再下載它們共享的資源就可以下載成功,接下來你可以手工的把下載好的數據集放到恰當的位置。你可能以為是萬事大吉了,但是它會報錯:
RuntimeError: Dataset not found. You can use download=True to download it
這是為什么呢?我們取看他的源代碼(按住ctrl,然后點擊相應的函數)如下圖:
就可以看到源代碼了,代碼中還要對數據進行進一步處理,你的下載的文件不是它直接拿來用的,最后要處理成.pt文件,所以直接把數據集放在指定文件夾是不可行的。你可能想到把數據進行處理的代碼拿出來,然后處理我們已經下載好的數據就可以了,我也這樣嘗試了,但是也會assertion報錯,我就沒有繼續進行,而是采用了下面的簡便的方案。
首先問題的根本原因就在於從外國網站下載數據很慢,這個時候。那么你可以把自己電腦上已經下載好的數據集的文件路徑放到瀏覽器的窗口,然后轉到這個地址,就可以得到如下:
然后把源代碼中的網址替換成本地的文件地址就可以了,如下所示:
urls = [ 'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz', 'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz', 'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz', 'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', ]
成為
urls = [ 'file:///E:/programing/python/StudyPytorch/StudyPytorch/mnist/train-images-idx3-ubyte.gz', 'file:///E:/programing/python/StudyPytorch/StudyPytorch/mnist/train-labels-idx1-ubyte.gz', 'file:///E:/programing/python/StudyPytorch/StudyPytorch/mnist/t10k-images-idx3-ubyte.gz', 'file:///E:/programing/python/StudyPytorch/StudyPytorch/mnist/t10k-labels-idx1-ubyte.gz', ]
下面是正常運行的結果(路徑和前面不一樣不要大驚小怪,因為我又用其他路徑做了一次):