MNIST - mnist.train_images() 问题 - HTTPError: Forbidden

问题描述 投票:0回答:1

我目前正在学习神经网络,我想使用 train_images() 函数,但我无法这样做。如果我运行以下代码:

import mnist

images = mnist.train_images()

,我会得到:

runfile('C:/Users/deriv/untitled0.py', wdir='C:/Users/deriv')
Traceback (most recent call last):

  File ~\anaconda3\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
    exec(code, globals, locals)

  File c:\users\deriv\untitled0.py:3
    images = mnist.train_images()

  File ~\anaconda3\Lib\site-packages\mnist\__init__.py:161 in train_images
    return download_and_parse_mnist_file('train-images-idx3-ubyte.gz')

  File ~\anaconda3\Lib\site-packages\mnist\__init__.py:143 in download_and_parse_mnist_file
    fname = download_file(fname, target_dir=target_dir, force=force)

  File ~\anaconda3\Lib\site-packages\mnist\__init__.py:59 in download_file
    urlretrieve(url, target_fname)

  File ~\anaconda3\Lib\urllib\request.py:241 in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:

  File ~\anaconda3\Lib\urllib\request.py:216 in urlopen
    return opener.open(url, data, timeout)

  File ~\anaconda3\Lib\urllib\request.py:525 in open
    response = meth(req, response)

  File ~\anaconda3\Lib\urllib\request.py:634 in http_response
    response = self.parent.error(

  File ~\anaconda3\Lib\urllib\request.py:563 in error
    return self._call_chain(*args)

  File ~\anaconda3\Lib\urllib\request.py:496 in _call_chain
    result = func(*args)

  File ~\anaconda3\Lib\urllib\request.py:643 in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

HTTPError: Forbidden

我使用 pip install 正确安装了 mnist 但是,我不知道为什么** mnist.train_images()** 会导致错误。抱歉,如果这是一个简单的问题,但这会对我有很大帮助。

我不知道是否应该直接从 http://yann.lecun.com/exdb/mnist/ 下载文件。但是我无法这样做,因为我没有访问此资源的权限。

machine-learning deep-learning neural-network classification mnist
1个回答
0
投票

看来网络服务器确实配置错误:http://yann.lecun.com/exdb/mnist/。由于这个数据集内置在许多标准库中,例如 keras(请参阅本教程),因此我认为从“lecun url”下载它的频率并不高。

在源代码(mnist/init.py)中有一条评论:

# `datasets_url` and `temporary_dir` can be set by the user using:
# >>> mnist.datasets_url = 'http://my.mnist.url'
# >>> mnist.temporary_dir = lambda: '/tmp/mnist'
datasets_url = 'http://yann.lecun.com/exdb/mnist/'
temporary_dir = tempfile.gettempdir

所以理论上,你可以为镜子设置

mnist.datasets_url
变量,它应该可以工作。我发现的唯一具有原始格式的镜像是:https://github.com/mkolod/MNIST。但这是
https
,它对我不起作用。

因此,您可以手动将数据从 GitHub 镜像下载到此代码所示的临时目录中:

import temp file
tempfile.gettempdir()

然后

mnist.train_images()
应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.