我有一个基于一个 .tfrecord 文件的张量流数据集。如何将数据集拆分为测试数据集和训练数据集?例如。 70% 训练,30% 测试?
Edit:
我的张量流版本:1.8
我已经检查过,没有可能的重复项中提到的“split_v”函数。我也在使用 tfrecord 文件。
您可以使用Dataset.take()
and Dataset.skip()
:
train_size = int(0.7 * DATASET_SIZE)
val_size = int(0.15 * DATASET_SIZE)
test_size = int(0.15 * DATASET_SIZE)
full_dataset = tf.data.TFRecordDataset(FLAGS.input_file)
full_dataset = full_dataset.shuffle()
train_dataset = full_dataset.take(train_size)
test_dataset = full_dataset.skip(train_size)
val_dataset = test_dataset.skip(test_size)
test_dataset = test_dataset.take(test_size)
为了更通用,我给出了一个使用 70/15/15 训练/验证/测试分割的示例,但如果您不需要测试或验证集,只需忽略最后两行。
Take:
创建一个数据集,其中最多包含此数据集中的 count 个元素。
Skip:
创建一个数据集,跳过该数据集中的 count 元素。
您可能还想了解一下Dataset.shard():
创建一个仅包含此数据集的 1/num_shards 的数据集。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)