【问题标题】:ValueError: Not enough values to unpack in tfds.loadValueError:没有足够的值在 tfds.load 中解压
【发布时间】:2021-01-12 13:00:22
【问题描述】:

我是 Python 和 Tensorflow 的新手。执行 tfds.load 函数时,出现以下错误。我花了几个小时试图理解错误,但我不知所措。任何帮助,将不胜感激。 我正在使用以下版本:python 3.8、tensorflow 2.3 和 tensorflow-datasets 1.2

ValueError                                Traceback (most recent call last)
    <ipython-input-2-41baf13b8c3f> in <module>
    ----> 1 mnistdataset, mnist_info = tfds.load("mnist", 
                with_info=True, as_supervised=True)
~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\api_utils.py in 
disallow_positional_args_dec(fn, instance, args, kwargs)
     50     _check_no_positional(fn, args, ismethod, allowed=allowed)
     51     _check_required(fn, kwargs)
---> 52     return fn(*args, **kwargs)
     53 
     54   return disallow_positional_args_dec(wrapped)  # pylint: disable=no-value-for-parameter

~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\registered.py in load(name, 
split, data_dir, batch_size, in_memory, shuffle_files, download, as_supervised, decoders, with_info, 
builder_kwargs, download_and_prepare_kwargs, as_dataset_kwargs, try_gcs)
    298   if download:
    299     download_and_prepare_kwargs = download_and_prepare_kwargs or {}
--> 300     dbuilder.download_and_prepare(**download_and_prepare_kwargs)
    301 
    302   if as_dataset_kwargs is None:

~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\api_utils.py in 
disallow_positional_args_dec(fn, instance, args, kwargs)
     50     _check_no_positional(fn, args, ismethod, allowed=allowed)
     51     _check_required(fn, kwargs)
---> 52     return fn(*args, **kwargs)
     53 
     54   return disallow_positional_args_dec(wrapped)  # pylint: disable=no-value-for-parameter

~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\dataset_builder.py in 
download_and_prepare(self, download_dir, download_config)
    260     dl_manager = self._make_download_manager(
    261         download_dir=download_dir,
--> 262         download_config=download_config)
    263 
    264     # Currently it's not possible to overwrite the data because it would

~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\dataset_builder.py in 
_make_download_manager(self, download_dir, download_config)
    660         force_download=(download_config.download_mode == FORCE_REDOWNLOAD),
    661         force_extraction=(download_config.download_mode == FORCE_REDOWNLOAD),
--> 662         register_checksums=download_config.register_checksums,
    663     )
    664 

~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\api_utils.py in 
disallow_positional_args_dec(fn, instance, args, kwargs)
     50     _check_no_positional(fn, args, ismethod, allowed=allowed)
     51     _check_required(fn, kwargs)
---> 52     return fn(*args, **kwargs)
     53 
     54   return disallow_positional_args_dec(wrapped)  # pylint: disable=no-value-for-parameter

~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\download\download_manager.py in 
__init__(self, download_dir, extract_dir, manual_dir, dataset_name, force_download, force_extraction, 
register_checksums)
    175     self._register_checksums = register_checksums
    176     # All known URLs: {url: (size, checksum)}
--> 177     self._sizes_checksums = checksums.get_all_sizes_checksums()
    178     # To record what is being used: {url: (size, checksum)}
    179     self._recorded_sizes_checksums = {}

~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\download\checksums.py in 
get_all_sizes_checksums()
    127   sizes_checksums = {}
    128   for path in _checksum_paths().values():
--> 129     data = _get_sizes_checksums(path)
    130     for url, size_checksum in data.items():
    131       if (url in sizes_checksums and

~\anaconda3\envs\py3-TF2.0\lib\site-packages\tensorflow_datasets\core\download\checksums.py in 
_get_sizes_checksums(checksums_path)
    117       continue
    118     # URL might have spaces inside, but size and checksum will not.
--> 119     url, size, checksum = line.rsplit(' ', 2)
    120     checksums[url] = (int(size), checksum)
    121   return checksums

ValueError: 没有足够的值来解包(预期 3,得到 1)

【问题讨论】:

  • 这看起来像是 TensorFlow 数据集中的一个错误。可以升级吗?
  • tensorflow.org/datasets/api_docs/python/tfds 4.2 是最新版本。你的 tensorflow 版本是什么?
  • 谢谢。我更新了张量流数据集。成功了

标签: python-3.x tensorflow2.0 tensorflow-datasets


【解决方案1】:

来自 cmets

将 tensorflow-datasets 从 1.2 升级到 4.2 后,问题是 解决。 (从 Niteya Shah 转述)

【讨论】:

    【解决方案2】:

    我也遇到了问题,这将解决问题:

    pip install tensorflow-datasets=4.3
    

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 2017-04-17
      • 2021-08-21
      • 2020-04-17
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 2023-02-20
      相关资源
      最近更新 更多