Keras调谐器:max_trials、executive_per_trial和epochs的确切作用是什么?

u5rb5r59  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(168)

我知道所有这些参数都在文档中,但是术语很混乱。我不确定“execution”和“epoch”之间的区别是什么。我目前的理解是

  • max_trials:要搜索的超参数组合的数量
  • 每次审判执行次数:更新每个超参数组合的权重的次数
  • epochs:经历以下过程的次数:更新每个max_trials试验的权重execution_per_trial时间

以下面的代码为例

tuner = RandomSearch(
  hypermodel =  build_model,
  max_trials = 5,
  executions_per_trial = 6,
  hyperparameters = hp,
  objective = 'mse',
  ...
)

tuner %>% fit_tuner(x = x, y = y, 
                    epochs = 100, 
                    validation_data = list(x_val, y_val))

我希望这样做能对5种参数组合的模型权重进行6次更新,这样做100次,但是,就像我说的,我真的不确定。

fkaflof6

fkaflof61#

基本思想是下面的伪代码:

for trial in 1 to max_trials:
    hp = select_hyperparameters()
    for execution in 1 to executions_per_trial:
        model = build_model(hp)
        for epoch in 1 to epochs:
            model.update_weights()

对于一个超参数组合,如果要评估的模型不具有确定性,则可能需要构建多个模型。(以及它们接收训练数据的顺序),并且具有相同体系结构的两个网络将不会导致完全相同的模型,即使它们用相同的数据训练。如果使用相同的超参数组合训练多个模型,则不太可能观察到好的组合导致坏的分数,或坏的组合导致好的分数的情况。

相关问题