首页 > 解决方案 > 加载 tensorflow_datasets 时出错:Google 云出错

问题描述

加载 tensorflow_dataset 时,出现以下错误:

ds = tfds.load('mnist', split='train', shuffle_files=True)
---------------------------------------------------------------------------
FailedPreconditionError                   Traceback (most recent call last)
~/anaconda3/lib/python3.7/site-packages/tensorflow_datasets/core/utils/py_utils.py in try_reraise(*args, **kwargs)
    398   try:
--> 399     yield
    400   except Exception:   # pylint: disable=broad-except

~/anaconda3/lib/python3.7/site-packages/tensorflow_datasets/core/registered.py in builder(name, **builder_init_kwargs)
    243       prefix="Failed to construct dataset {}".format(name)):
--> 244     return builder_cls(name)(**builder_kwargs)
    245 

~/anaconda3/lib/python3.7/site-packages/tensorflow_datasets/core/api_utils.py in disallow_positional_args_dec(fn, instance, args, kwargs)
     68     _check_required(fn, kwargs)
---> 69     return fn(*args, **kwargs)
     70 

~/anaconda3/lib/python3.7/site-packages/tensorflow_datasets/core/dataset_builder.py in __init__(self, data_dir, config, version)
    205     else:  # Use the code version (do not restore data)
--> 206       self.info.initialize_from_bucket()
    207 

~/anaconda3/lib/python3.7/site-packages/tensorflow_datasets/core/dataset_info.py in initialize_from_bucket(self)
    422     tmp_dir = tempfile.mkdtemp("tfds")
--> 423     data_files = gcs_utils.gcs_dataset_info_files(self.full_name)
    424     if not data_files:

~/anaconda3/lib/python3.7/site-packages/tensorflow_datasets/core/utils/gcs_utils.py in gcs_dataset_info_files(dataset_dir)
     70   """Return paths to GCS files in the given dataset directory."""
---> 71   return gcs_listdir(posixpath.join(GCS_DATASET_INFO_DIR, dataset_dir))
     72 

~/anaconda3/lib/python3.7/site-packages/tensorflow_datasets/core/utils/gcs_utils.py in gcs_listdir(dir_name)
     63   root_dir = gcs_path(dir_name)
---> 64   if is_gcs_disabled() or not tf.io.gfile.exists(root_dir):
     65     return None

~/anaconda3/lib/python3.7/site-packages/tensorflow/python/lib/io/file_io.py in file_exists_v2(path)
    266   try:
--> 267     _pywrap_file_io.FileExists(compat.as_bytes(path))
    268   except errors.NotFoundError:

FailedPreconditionError: Error executing an HTTP request: libcurl code 77 meaning 'Problem with the SSL CA cert (path? access rights?)', error details: error setting certificate verify locations:
  CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
     when reading metadata of gs://tfds-data/dataset_info/mnist/3.0.1

此外,在 cmd 行上出现以下内容:

2020-08-23 12:12:46.444195: W tensorflow/core/platform/cloud/google_auth_provider.cc:184] 所有获取 Google 身份验证承载令牌的尝试均失败,返回一个空令牌。从文件中检索令牌失败,并显示“未找到:无法找到凭据文件。”。从 GCE 检索令牌失败,并显示“失败的前提条件:执行 HTTP 请求时出错:libcurl 代码 6 表示‘无法解析主机名’,错误详细信息:无法解析主机‘元数据’”。

我在公司防火墙后面,我可以做任何事情来解决这个看起来像谷歌云身份验证/证书问题的问题。

谢谢。

标签: pythontensorflow

解决方案


'ln -s /etc/ssl/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt' 解决了这个问题。


推荐阅读