源代码段
import tensorflow_datasets as tfds
SPLIT_WEIGHTS = (8,1,1)
splits = tfds.Split.TRAIN.subsplit(weighted=SPLIT_WEIGHTS)
(raw_train, raw_validation, raw_test), metadata = tfds.load( 'horses_or_humans', split=list(splits), with_info=True, as_supervised=True)
报错信息
AttributeError: ‘Split’ object has no attribute ‘subsplit’
报错原因
在官方文档中查看Split的subsplit方法已经被删掉了
通过安装多个版本测试大致在4.0.0版本的tensorflow_datasets之后就没有的subsplit()
该方法的目的是对于没有进行训练集与测试集划分的数据集进行指定权重的分割
问题解决
1.回退版本
# 卸载当前版本 tensorflow_datasets
pip uninstall tensorflow_datasets
# 安装 3.0.0 版本
pip install tensorflow_datasets==3.0.0
2.使用新版本分割方式
官方文档:TensorFlow_Datasets_Split
# 由于数据集没有区分,所以这里都用train进行分割
(raw_train, raw_validation, raw_test), metadata = tfds.load( 'horses_or_humans',
split=["train[:80%]","train[80%:90%]","train[90%:]"],
with_info=True, as_supervised=True)