我想从tensorflow_datasets加载虹膜数据集,并将其分成67%(2/3)进行训练,其余1/3进行测试。元素总数为150,我认为它们没有被改组。
因此,我有以下代码:
import tensorflow_datasets as tfds
first_67_percent = tfds.Split.TRAIN.subsplit(tfds.percent[:67])
last_33_percent = tfds.Split.TRAIN.subsplit(tfds.percent[-33:])
ds_train_orig = tfds.load('iris', split=first_67_percent)
ds_test = tfds.load('iris', split=last_33_percent)
现在,当我查看每个分割的大小时,会看到以下内容:
labels_train = []
for i,item in enumerate(ds_train_orig):
labels_train.append(item[1].numpy())
labels_test = []
for i,item in enumerate(ds_test):
labels_test.append(item[1].numpy())
print('Training Set: ',len(labels_train), 'Test Set: ', len(labels_test))
Training Set: 117 Test Set: 33
所以看来训练集有117个元素,而测试集有33个元素。 但是我希望得到100个培训和50个测试。
然后我尝试通过tfds.subsplit使用另一种方法:
split_train, split_test = tfds.Split.TRAIN.subsplit([2, 1])
ds_train_orig = tfds.load('iris', split=split_train)
ds_test = tfds.load('iris', split=split_test)
这也导致116培训和34测试样本。
TensorFlow中是否存在任何问题,或者我缺少什么?