使用tfds.percent拆分TensorFlow数据集

时间:2019-06-12 00:58:27

标签: python tensorflow split tensorflow-datasets

我想从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中是否存在任何问题,或者我缺少什么?

0 个答案:

没有答案