我目前正在学习神经网络,我想使用 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/ 下载文件。但是我无法这样做,因为我没有访问此资源的权限。
看来网络服务器确实配置错误: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()
应该可以工作。