Keras Tuner中max_trials、executions_per_trial和epochs参数作用解析
Keras Tuner 中
max_trials、executions_per_trial 和 epochs 的区别 核心概念澄清
- Epoch(轮次):指将整个训练数据集完整遍历一遍的次数。每完成一轮遍历,模型权重会基于全量样本的梯度完成一轮更新(实际训练中是按批次更新,但epoch是宏观的完整遍历单位)。
- Execution(执行):超参数调优语境下,指针对某一组固定超参数,独立完成一次模型训练的过程,这个过程会包含指定数量的epochs。
参数详解
max_trials:待搜索的超参数组合总数量。设置为5时,会随机生成5组不同的超参数配置进行测试。executions_per_trial:针对同一组超参数组合,重复训练模型的次数。设置为6时,同一组参数会被用来训练6次独立模型,最终取这6次训练结果的平均值作为该参数组合的评估指标,目的是降低随机性对结果的影响。epochs:每次execution过程中,模型训练的轮次。即每一次单独训练模型时,会把数据集完整遍历100遍。
对应代码的实际执行流程
你提供的代码实际执行逻辑如下:
- 随机生成5组不同的超参数组合(对应
max_trials=5) - 对每一组超参数:
- 用该参数构建模型,执行100个epoch的训练(对应
epochs=100) - 重复上述训练过程6次(对应
executions_per_trial=6) - 计算这6次训练后的平均MSE,作为该参数组合的最终得分
- 用该参数构建模型,执行100个epoch的训练(对应
- 遍历完5组参数后,选出得分最优的超参数组合
你的原理解存在偏差:epochs并非重复整个调参流程的次数,而是单次模型训练的轮次;executions_per_trial是同一参数下重复训练的次数,而非权重更新次数(权重更新次数应为epochs × 训练集批次数量)。
内容的提问来源于stack exchange,提问作者Mas
相关产品推荐
相关产品推荐

