用TensorFlow数据集进行验证

问题描述 投票:0回答:1

来自 用Keras进行培训和评估:

当从Dataset对象进行训练时,不支持参数validation_split(从训练数据中生成一个保持集),因为这个功能需要能够对数据集的样本进行索引,而一般的Dataset API是不可能做到的。

有什么变通的办法吗?如何还能使用TF数据集的验证集?

python tensorflow machine-learning keras tensorflow-datasets
1个回答
1
投票

不,你不能使用 validation_split (如文档所明确描述的),但你可以创建 validation_data 取而代之 Dataset "手动"。

你可以看到一个例子,在同一个 tensorflow教程:

# Prepare the training dataset
train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
train_dataset = train_dataset.shuffle(buffer_size=1024).batch(64)

# Prepare the validation dataset
val_dataset = tf.data.Dataset.from_tensor_slices((x_val, y_val))
val_dataset = val_dataset.batch(64)

model.fit(train_dataset, epochs=3, validation_data=val_dataset)

你可以从以下地方创建这两个数据集 numpy 数组((x_train, y_train)(x_val, y_val))使用简单的切片,如那里所示。

(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_val = x_train[-10000:]
y_val = y_train[-10000:]
x_train = x_train[:-10000]
y_train = y_train[:-10000]

也有其他方法来创建 tf.data.Dataset 对象 tf.data.Dataset 文档和相关教程笔记。

© www.soinside.com 2019 - 2024. All rights reserved.