尝试下载 MNIST 数据时出现 HTTP 错误

Aru*_*run 11 python pytorch

我正在使用 Google Colab 使用 Python3 和 PyTorch 1.8 在 MNIST 上训练 LeNet-300-100 全连接神经网络。

要应用转换并下载 MNIST 数据集,将使用以下代码:

# MNIST dataset statistics:
# mean = tensor([0.1307]) & std dev = tensor([0.3081])
mean = np.array([0.1307])
std_dev = np.array([0.3081])

transforms_apply = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize(mean = mean, std = std_dev)
    ])
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

下载 http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz到 ./data/MNIST/raw/train-images-idx3-ubyte.gz -------- -------------------------------------------------- ----------------- HTTPError Traceback (most recent call last) in () 2 train_dataset = torchvision.datasets.MNIST(3 root = './data', train = True, ----> 4 变换 = 变换_应用,下载 = 真 5 ) 6

11 帧 /usr/lib/python3.7/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs) 647 class HTTPDefaultErrorHandler(BaseHandler): 648 def http_error_default(self, req, fp, code, msg, hdrs): --> 649 引发 HTTPError(req.full_url, code, msg, hdrs, fp) 650 651 类 HTTPRedirectHandler(BaseHandler):

HTTPError:HTTP 错误 503:服务不可用

怎么了?

Saa*_*san 17

我遇到了同样的 503 错误,这对我有用

!wget www.di.ens.fr/~lelarge/MNIST.tar.gz
!tar -zxvf MNIST.tar.gz

from torchvision.datasets import MNIST
from torchvision import transforms

train_set = MNIST('./', download=True,
transform=transforms.Compose([
transforms.ToTensor(),
]), train=True)


test_set = MNIST('./', download=True,
transform=transforms.Compose([
transforms.ToTensor(),
]), train=False)
Run Code Online (Sandbox Code Playgroud)


use*_*517 6

托管在http://yann.lecun.com/exdb/mnist/上的 MNIST 遇到了很多麻烦,因此 pytorch 获得了许可并将其托管在 amazon aws 上。

不幸的是,此修复程序仅在每晚构建中可用(您可以在此处找到修复代码。)

我发现有用的修补程序是:

from torchvision import datasets
new_mirror = 'https://ossci-datasets.s3.amazonaws.com/mnist'
datasets.MNIST.resources = [
   ('/'.join([new_mirror, url.split('/')[-1]]), md5)
   for url, md5 in datasets.MNIST.resources
]
train_dataset = datasets.MNIST(
   "../data", train=True, download=True, transform=transform
)
Run Code Online (Sandbox Code Playgroud)

更新:根据火炬视觉问题 3549,这将在下一个小版本中修复


小智 1

你可以试试这个:

from sklearn.datasets import fetch_openml


mnist = fetch_openml('mnist_784', data_home=".")

x = mnist.data
x = x.reshape((-1, 28, 28))
x = x.astype('float32')

y = mnist.target
y = y.astype('float32')
Run Code Online (Sandbox Code Playgroud)