Windows下tfds下载imdb_reviews出现UnicodeDecodeError报错求助
报错根因
这个UnicodeDecodeError是TensorFlow 2.3版本在Windows环境下的已知bug,触发原因有两个:
- TensorFlow 2.3.x对Windows系统的文件路径编码适配不完善,处理非ASCII字符时会报错
- tensorflow_datasets默认把数据集存储在
C:\Users\你的用户名目录下,如果用户名包含中文/特殊字符,就会触发编码异常
可行解决方案
按优先级从高到低排列:
方案1:自定义无特殊字符的数据集存储路径
提前在全英文路径下创建存储文件夹(比如D:\tfds_datasets),在调用tfds.load时指定data_dir参数即可,修改后代码如下:import tensorflow_datasets as tfds datasets, info = tfds.load( "imdb_reviews", as_supervised=True, with_info=True, data_dir="D:/tfds_datasets" )注意:指定的路径必须全为英文、没有空格和特殊符号,否则还是会触发编码错误
这个方案不需要修改环境依赖,操作成本最低,优先测试。方案2:升级适配版本的依赖包
如果方案1没有解决问题,直接升级TensorFlow和tensorflow_datasets到无bug的匹配版本即可,执行安装命令:pip install tensorflow==2.6.0 tensorflow-datasets==4.4.0
如果你使用Anaconda虚拟环境,需要先切换到对应环境再执行命令。方案3:离线导入数据集
网络受限无法在线下载的情况下,可以手动下载imdb_reviews数据集压缩包,放到你指定的data_dir对应目录下,tensorflow_datasets会自动识别本地文件,跳过下载流程直接加载,也能规避编码报错。
内容的提问来源于stack exchange,提问作者Niko
相关产品推荐
相关产品推荐

