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(代码片相关的知识,希望对你有一定的参考价值。

TensorFlow调用Keras数据集出现错误

问题描述

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] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

解决方法

问题原因:

可能是由于防火墙的原因或者网站代理已关闭,导致数据无法下载。

解决方案:

  1. 尝试使用 VPN,访问外网下载 dataset.
  2. 手动下载数据集(推荐)

好多人已经将这些数据下载了下来,我们只需要根据他们的链接将这些数据集下载到本地,再调用就好了。

下面两种下载方式来自于其他参考博客(感谢):

  1. 坚果云下载(访问密码:yDmqHd)
  2. 百度云下载(提取码: 3a2u)

下载完成后解压后是如下这些文件,都是已经下载好的数据集。

我们只需要将这些文件放到指定位置下就可以调用它们。

指定位置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中,避免出错。

参考link link link

以上是关于URL fetch failure on https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz: None(代码片的主要内容,如果未能解决你的问题,请参考以下文章

[<twisted.python.failure.Failure <class 'OpenSSL.SSL.Error'>>]

RSS代码与喜鹊RSS饲料

Cannot fetch index base URL http://pypi.python.org/simple/

Fetch API 无法加载 URL 方案对于 CORS 请求必须是“http”或“https”

芹菜工人过早退出不会调用 on_failure

跪求!!!用jsoup提交表单时报错 HTTP error fetching URL,Status=405