目录
一、MNIST数据集下载失败
1 失败的解决办法(经验教训):
2 亲测有效的解决方法:
一、MNIST数据集下载失败
场景复现:想要pytorch+MINIST数据集来实现手写数字识别,首先就是进行MNIST数据集的下载,但是下载失败了。
import torch
import torch.nn as nn
import torch.utils.data as Data
import torchvision
import matplotlib.pyplot as plt
import os
import cv2
# 下载mnist手写数据集
train_data = torchvision.datasets.MNIST(
root='./data/MNIST/', # 保存或提取的位置 会放在当前文件夹中
train=True, # true说明是用于训练的数据,false说明是用于测试的数据
transform=torchvision.transforms.ToTensor(), # 转换PIL.Image or numpy.ndarray
download=True, # 是否下载到 root指定的位置,如果指定的root位置已经存在该数据集,则不再下载
)
test_data = torchvision.datasets.MNIST(
root='./data/MNIST/',
train=False, # 表明是测试集
download=True, # 是否下载到 root指定的位置,如果指定的root位置已经存在该数据集,则不再下载
)
报错:
1 失败的解决办法(经验教训):
看到网上的方法,尝试一下,
(1)从http://yann.lecun.com/exdb/mnist/网址下载四个MNIST数据压缩包,
(2)下载完成后放入任意文件夹。将文件目录复制放到浏览器链接窗口处,并复制浏览器上的url,
(3)找到mnist.py文件 ,对于我个人而言,我的mnist.py文件在D:\my\python-pycharm\python-envs\venv-deep\Lib\site-packages\torchvision\datasets下,
将源代码中的urls注释掉,将自己浏览器上的url地址复制过去,
(4)对文件进行保存修改,然后重新运行代码,还是下载失败了,不清楚什么原因。
2 亲测有效的解决方法:
突然想到了既然报错的是下面所示的第一个下载方式不行,
http://yann.lecun.com/exdb/mnist/
那么我们就试试第二种下载路径看看可不可以,
https://ossci-datasets.s3.amazonaws.com/mnist/
(1)因此,把两个下载路径调换位置, 第二种下载路径放在前面,
(2)对文件进行保存修改,然后重新运行代码即可。
注:代码运行中断后,已经下载了mnist文件夹,你重新运行时需要找到这个文件夹并删除,否则将报错。