You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用tensorflow_datasets加载FashionMNIST时遇TypeError问题求助

使用FashionMNIST训练GAN时加载数据出现TypeError问题

错误信息

TypeError                                 Traceback (most recent call last)
Cell In[6], line 2
      1 builder = tfds.builder('fashion_mnist', data_dir=folder_path)
----> 2 builder.download_and_prepare()
      3 ds = builder.as_dataset(split=tfds.Split.TRAIN)

File e:\Info\Anaconda\envs\ia\lib\site-packages\tensorflow_datasets\core\logging\__init__.py:169, in _FunctionDecorator.__call__(self, function, instance, args, kwargs)
    167 metadata = self._start_call()
    168 try:
---> 169   return function(*args, **kwargs)
    170 except Exception:
    171   metadata.mark_error()

File e:\Info\Anaconda\envs\ia\lib\site-packages\tensorflow_datasets\core\dataset_builder.py:646, in DatasetBuilder.download_and_prepare(self, download_dir, download_config, file_format)
    644   self.info.read_from_directory(self._data_dir)
    645 else:
---> 646   self._download_and_prepare(
    647       dl_manager=dl_manager,
    648       download_config=download_config,
    649   )
    651   # NOTE: If modifying the lines below to put additional information in
    652   # DatasetInfo, you'll likely also want to update
    653   # DatasetInfo.read_from_directory to possibly restore these attributes
    654   # when reading from package data.
...

TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
    1. tensorflow.python._pywrap_file_io.BufferedInputStream(arg0: str, arg1: int)

尝试过的加载代码

builder = tfds.builder('fashion_mnist', data_dir=folder_path)
builder.download_and_prepare()
ds = builder.as_dataset(split=tfds.Split.TRAIN)

当前环境版本:TensorFlow 2.3.0,tensorflow_datasets 4.9.2


解决方案

这个错误是版本不兼容导致的:tensorflow_datasets 4.9.2对TensorFlow的最低要求是2.8.0,而你使用的TF2.3.0版本过低,两者API不匹配引发了构造函数参数错误。

解决方法二选一:

  • 方案1:升级TensorFlow到兼容版本
    执行命令升级TF到2.8.0及以上(推荐2.10.x版本,兼顾稳定性和兼容性):
    pip install tensorflow>=2.8.0 --upgrade
    
  • 方案2:降级tensorflow_datasets到适配TF2.3的版本
    TF2.3对应的兼容tfds版本是4.0.x系列,执行命令降级:
    pip install tensorflow_datasets==4.0.0 --force-reinstall
    

验证方法:安装完成后重新运行数据加载代码,若错误消失则说明版本匹配成功。


内容的提问来源于stack exchange,提问作者Panda14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:42:12