Luk*_*sen 3 python machine-learning keras tensorflow tensorflow-datasets
从 Dataset 对象进行训练时,不支持参数validation_split(从训练数据生成保留集),因为此功能需要能够对数据集的样本进行索引,而这通常使用 Dataset API 是不可能的。
有解决方法吗?如何仍将验证集与 TF 数据集一起使用?
不,您不能使用 use validation_split
(如文档清楚描述的那样),但您可以创建validation_data
并Dataset
“手动”创建。
您可以在同一个张量流教程中看到一个示例:
# 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)
Run Code Online (Sandbox Code Playgroud)
您可以使用简单的切片从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]
Run Code Online (Sandbox Code Playgroud)
还有其他方法来创建tf.data.Dataset
对象,请参阅tf.data.Dataset
文档和相关教程/笔记本。