-1

我正在使用 Keras Tuner 来超调我的模型。我在 search() 调用中设置参数值“validation_split = 0.2”。传递“shuffle = True”是否仍然有意义,还是多余/适得其反?

tuner = RandomSearch(
    hypermodel = build_model,
    objective = kt.Objective("val_loss", direction = "min"),
    max_trials = 100,
    executions_per_trial = 2,
    directory = "V5",
    project_name = "case8",
    seed = RANDOM_SEED,
    overwrite = True
)

tuner.search(
    x = x_train_new, 
    y = y_train.values,
    batch_size = 1024, 
    epochs = 100, 
    validation_split = 0.2,
    shuffle = True,
    callbacks = [ model_early_stopping]
)
4

1 回答 1

0

validation_split = 0.2 这会将数据拆分为训练数据 =0.8 和验证数据 =0.2

默认情况下,Keras Tuner 会打乱数据,因此无需明确提及。

对于时间序列数据,调谐器不应该打乱数据,在这种情况下,将其值保持为 false。

对于生成器,即使我们传递了 shuffle 参数的值,调谐器也会忽略它。

您可以在此处找到更多详细信息 https://github.com/tensorflow/tensorflow/blob/80117da12365720167632761a61e0e32e4db2dcc/tensorflow/python/keras/engine/training.py#L1003

于 2021-06-10T14:32:15.907 回答