使用tensorflow_datasets下载rock_paper_scissors数据集遇TypeError错误求助
解决tensorflow_datasets下载rock_paper_scissors数据集的TypeError问题
问题重现
执行以下代码时触发错误:
import tensorflow_datasets as tfds hands_builder = tfds.builder("rock_paper_scissors") hands_builder.download_and_prepare()
报错信息
TypeError: Expected binary or unicode string, got WindowsGPath('C:\\Users\\Wilso\\tensorflow_datasets\\downloads\\download.tensorflow.org_rpswkA0RDlYQq0ExTYSutVLV0RD6uF6ByMRei_4e51yGU8.zip')
环境版本
- tensorflow-gpu: 2.1.0
- tensorflow_datasets: 3.0.0
- tfds-nightly: 4.6.0
- 操作系统: Windows 10
解决方法
1. 统一兼容版本(核心方案)
当前环境中tfds-nightly 4.6.0与老旧的tensorflow-gpu 2.1.0版本严重不兼容,导致路径处理逻辑冲突,引发类型错误。需卸载冲突包并安装匹配版本:
卸载现有包:
pip uninstall tensorflow_datasets tfds-nightly -y
安装与tensorflow-gpu 2.1.0兼容的tensorflow_datasets版本:
pip install tensorflow_datasets==2.1.0
2. 手动指定字符串格式下载路径(辅助方案)
若仍存在路径类型问题,可在构建数据集时手动指定字符串格式的数据目录,避免路径对象转换错误:
import tensorflow_datasets as tfds # 显式传入字符串格式的本地数据目录 hands_builder = tfds.builder("rock_paper_scissors", data_dir="C:\\Users\\Wilso\\tensorflow_datasets") hands_builder.download_and_prepare()
3. 检查Python版本兼容性
确保Python版本处于3.5-3.7区间,tensorflow-gpu 2.1.0仅支持该范围的Python版本,版本不匹配也可能引发隐性兼容问题。
内容的提问来源于stack exchange,提问作者Zhang Wei
相关产品推荐
相关产品推荐

