mnist_train = torchvision.datasets.FashionMNIST,Fashion-MNIST库下载速度太慢

  • Post author:
  • Post category:其他


问题:

最近学习李沐的动手学深度学习,在导入Fashion-MNIST库的时候出现下载速度过慢的问题

解决方法:

手动下载库后再导入离线的数据

1、下载地址:

链接:https://pan.baidu.com/s/1GyaSjSG-_NNEj1vJelJQJg

提取码:PyFM

下载好后,怎么导入?

网上说的是修改路径,我改了一下午,失败了一下午,对不起,是我蠢,贴几个我觉得讲的比较清楚的改文件夹的博文,大家参考,展示才华。


【Pytorch】加载本地FashionMNIST数据文件_Snychng的博客-CSDN博客_pytorch加载本地mnist数据集


十分钟搞懂Pytorch如何读取MNIST数据集_Ericam_的博客-CSDN博客_pytorch读取mnist数据集


【Pytorch】使用torchvision下载mnist数据集速度过慢而报错的解决方案_皮皮鲁与鲁西西�的博客-CSDN博客


解决pytorch下载mnist等数据集速度过慢、失败问题_CV干饭王的博客-CSDN博客_mnist数据集下载太慢

2、离线导入:

我的解决方法:

找到文件正常在线下载后的位置,在那个位置上贴上自己的已经下载好的内容,再去调用

a、首先把你下载的FashionMNIST放到一个新建的data文件夹中

b1、如果你是在jupyter notebook中运行就把这个data文件夹放到你jupyter notebook那一节的文件夹中

b2、如果你是在pycharm中运行,就把data文件夹放在你的主函数相同的文件夹中


然后把root=’../data’变成root=’./data’,后面的download选择True或False都可以

trans = transforms.ToTensor()
mnist_train = torchvision.datasets.FashionMNIST(
    root='./data', train=True, transform=trans, download=True)
mnist_test = torchvision.datasets.FashionMNIST(
    root='./data', train=False, transform=trans, download=True)
print(len(mnist_train), len(mnist_test))

c、再运行程序,就可以正常导入。

与此类似

batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)

凡是涉及导入这个库的函数,都需要ctrl+(点击这个函数)找到它的root,修改

root=’../data’为root=’./data’

就可以了

def load_data_fashion_mnist(batch_size, resize=None):
    """Download the Fashion-MNIST dataset and then load it into memory.

    Defined in :numref:`sec_fashion_mnist`"""
    trans = [transforms.ToTensor()]
    if resize:
        trans.insert(0, transforms.Resize(resize))
    trans = transforms.Compose(trans)

    mnist_train = torchvision.datasets.FashionMNIST(
        root="./data", train=True, transform=trans, download=True)
    mnist_test = torchvision.datasets.FashionMNIST(
        root="./data", train=False, transform=trans, download=True)
    return (data.DataLoader(mnist_train, batch_size, shuffle=True,
                            num_workers=get_dataloader_workers()),
            data.DataLoader(mnist_test, batch_size, shuffle=False,
                            num_workers=get_dataloader_workers()))

自己理解的解释:一直无法下载的原因是由于路径的问题,我猜测可能因为内部处理程序的问题,路径可能会进行某些修正处理,所以直接在程序中改路径,如果没有看懂程序如何读取路径和处理文件的方式很容易就改错了,所以关键就是去

找到文件正常在线下载后的位置,在那个位置上贴上自己的已经下载好的内容,再去调用

就可以成功了(下载默认,如果文件存在就不再下载,如果没有就在线下载)

最后,感谢在解决问题过程中各位大佬的帮助,如果我的回答帮助到你,还麻烦给我点赞加油呀~~



版权声明:本文为MOZHOUH原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。