问题:
最近学习李沐的动手学深度学习,在导入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()))
自己理解的解释:一直无法下载的原因是由于路径的问题,我猜测可能因为内部处理程序的问题,路径可能会进行某些修正处理,所以直接在程序中改路径,如果没有看懂程序如何读取路径和处理文件的方式很容易就改错了,所以关键就是去
找到文件正常在线下载后的位置,在那个位置上贴上自己的已经下载好的内容,再去调用
就可以成功了(下载默认,如果文件存在就不再下载,如果没有就在线下载)
最后,感谢在解决问题过程中各位大佬的帮助,如果我的回答帮助到你,还麻烦给我点赞加油呀~~