使用 tensorflow_datasets.load (TF 2.1) 拆分训练数据以进行训练和验证

Pou*_*and 7 python tensorflow tensorflow-datasets

我正在尝试运行以下 Colab 项目,但是当我想将训练数据拆分为验证和训练部分时,出现此错误:

KeyError: "Invalid split train[:70%]. Available splits are: ['train']"
Run Code Online (Sandbox Code Playgroud)

我使用以下代码:

(training_set, validation_set), dataset_info = tfds.load(
'tf_flowers',
split=['train[:70%]', 'train[70%:]'],
with_info=True,
as_supervised=True,
)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

seb*_*-sz 6

根据Tensorflow Dataset 文档,现在支持您提出的方法。通过将 split 参数传递给tfds.loadlike so可以进行拆分split="test[:70%]"

(training_set, validation_set), dataset_info = tfds.load(
    'tf_flowers',
    split=['train[:70%]', 'train[70%:]'],
    with_info=True,
    as_supervised=True,
)
Run Code Online (Sandbox Code Playgroud)

上面的代码training_set有 2569 个条目,而validation_set有 1101 个。

感谢Saman对 API 弃用的评论:
在之前的 Tensorflow 版本中,可以使用tfds.Split现在已弃用的 API:

(training_set, validation_set), dataset_info = tfds.load(
    'tf_flowers',
    split=[
        tfds.Split.TRAIN.subsplit(tfds.percent[:70]),
        tfds.Split.TRAIN.subsplit(tfds.percent[70:])
    ],
    with_info=True,
    as_supervised=True,
)
Run Code Online (Sandbox Code Playgroud)