機制解決torchvision下載國外數據集mnist沒有進度條的解決方案

我試着使用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',
    ]

下面是正常運行的結果(路徑和前面不一樣不要大驚小怪,因爲我又用其他路徑做了一次):

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章