1. 程式人生 > >使用torchvision下載外網資料集mnist沒有進度的解決方案

使用torchvision下載外網資料集mnist沒有進度的解決方案

我試著使用torchvison下載mnist資料集,但是由於是外國的站點,相信不只是mnist資料集,其他的資料集也可能遇到下載不了或者下載速度很慢的情況。

但是呢,很多人已經從外國的網站下載過了,你再下載它們共享的資源就可以下載成功,接下來你可以手工的把下載好的資料集放到恰當的位置。你可能以為是萬事大吉了,但是它會報錯:

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',
    ]

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

 其他的框架或者資料集也可以採用相似的辦法來解決!!