URL fetch failure on https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz: None(代码片
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL fetch failure on https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz: None(代码片相关的知识,希望对你有一定的参考价值。
问题描述
Keras框架为我们提供了一些常用的内置数据集。比如,图像识别领域的手写识别MNIST数据集、文本分类领域的电影影评imdb数据集等等。
这些数据库可以用一条代码就可以调用:
from keras.datasets import imdb
from keras.datasets import reuters
from tensorflow.python import keras
(x_train, y_train), (x_test, y_test) = mnist.load_data()
(x_train, y_train), (x_test, y_test) = imdb.load_data()
(x_train, y_train), (x_test, y_test) = keras.datasets.fashion_mnist.load_data()
load_data
方法的源码如下:
path = get_file(path, origin='https://s3.amazonaws.com/text-datasets/imdb.npz',
file_hash='599dadb1135973df5b59232a0e9a887c')
with np.load(path) as f:
x_train, labels_train = f['x_train'], f['y_train']
x_test, labels_test = f['x_test'], f['y_test']
在使用tf.keras
的数据集时,默认连接外网下载,发现速度特别慢,甚至有时候会出现连接错误(URL fetch failure
)。
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/reuters.npz
Traceback (most recent call last):
File “D:\\Anaconda3\\envs\\test\\lib\\urllib\\request.py”, line 1349, in do_open
encode_chunked=req.has_header(‘Transfer-encoding’))
……
TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “D:\\Anaconda3\\envs\\test\\lib\\site-packages\\tensorflow\\python\\keras\\utils\\data_utils.py”, line 278, in get_file
urlretrieve(origin, fpath, dl_progress)
……
urllib.error.URLError: <urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “D:/PyCharm/PythonProject/reuters.py”, line 2, in <module
……Exception: URL fetch failure on https://storage.googleapis.com/tensorflow/tf-keras-datasets/reuters.npz: None – [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
解决方法
问题原因:
可能是由于防火墙的原因或者网站代理已关闭,导致数据无法下载。
解决方案:
- 尝试使用
VPN
,访问外网下载 dataset. - 手动下载数据集(推荐)
好多人已经将这些数据下载了下来,我们只需要根据他们的链接将这些数据集下载到本地,再调用就好了。
下面两种下载方式来自于其他参考博客(感谢):
下载完成后解压后是如下这些文件,都是已经下载好的数据集。
我们只需要将这些文件放到指定位置下就可以调用它们。
指定位置:C:\\Users\\username\\.keras\\datasets\\
or C:\\Users\\Administrator\\.keras\\datasets
// keras会自动找到数据集/.keras/dataset在这个路径下
def load_data(path='imdb.npz', num_words=None, skip_top=0,
maxlen=None, seed=113, start_char=1,
oov_char=2, index_from=3, **kwargs):
"""
Loads the IMDB dataset.
# Arguments
path: where to cache the data (relative to `~/.keras/dataset`).
num_words: max number of words to include. Words are ranked
by how often they occur (in the training set) and only
the most frequent words are kept...
"""
如果你是Anaconda集成Python的开发环境,也是放在该路径下C:\\Users\\username\\.keras\\datasets\\
,不要放在Anaconda安装目录下的datasets中,避免出错。
以上是关于URL fetch failure on https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz: None(代码片的主要内容,如果未能解决你的问题,请参考以下文章
[<twisted.python.failure.Failure <class 'OpenSSL.SSL.Error'>>]
Cannot fetch index base URL http://pypi.python.org/simple/