【问题标题】:Split train data to train and validation by using tensorflow_datasets.load (TF 2.1)使用 tensorflow_datasets.load (TF 2.1) 拆分训练数据以进行训练和验证
【发布时间】:2020-05-11 07:56:29
【问题描述】:

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

KeyError: "Invalid split train[:70%]. Available splits are: ['train']"

我使用以下代码:

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

我该如何解决这个错误?

【问题讨论】:

标签: python tensorflow tensorflow-datasets


【解决方案1】:

根据Tensorflow Dataset docs,现在支持您提出的方法。可以通过将 split 参数传递给 tfds.load 来实现拆分,就像 split="test[:70%]" 一样。

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

使用上面的代码,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,
)

【讨论】:

  • 错误:Split' 对象没有属性 'subsplit'
  • 这对我有用,也许你可以更新你的答案: (tfds_train_ds, tfds_test_ds), tfds_info = tfds.load( dataset_name, split=[ 'train[:50%]', 'train[50 %:]'], with_info=True)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-22
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 2018-08-28
相关资源
最近更新 更多