Tuner 类keras_tuner.Tuner(
oracle,
hypermodel=None,
max_model_size=None,
optimizer=None,
loss=None,
metrics=None,
distribution_strategy=None,
directory=None,
project_name=None,
logger=None,
tuner_id=None,
overwrite=False,
executions_per_trial=1,
**kwargs
)
Keras 模型的 Tuner 类。
这是所有 Keras 模型调优器的基类Tuner。它负责 Keras 模型的构建、训练、评估和保存。可以通过继承此类来创建新的调优器。
所有与 Keras 相关的逻辑都在Tuner.run_trial()及其子例程中。在继承Tuner时,如果不调用super().run_trial(),则可以调优任何内容。
参数
Oracle 类的实例。HyperModel 类的实例(或一个可调用的对象,该对象接受超参数并返回一个Model实例)。当Tuner.run_trial()被重写并且不使用self.hypermodel时,它是可选的。compile步骤中的optimizer参数。如果超模型不编译其生成的模型,则必须指定此参数。compile步骤中的loss参数。如果超模型不编译其生成的模型,则必须指定此参数。compile步骤中的metrics参数。如果超模型不编译其生成的模型,则必须指定此参数。tf.distribute.Strategy 的可选实例。如果指定,每个 trial 将在此范围内运行。例如,tf.distribute.MirroredStrategy(['/gpu:0', '/gpu:1'])将在两个 GPU 上运行每个 trial。目前仅支持单 worker 策略。Tuner保存文件的前缀的名称。Tuner的 ID。False。如果为False,则在找到同名项目时重新加载现有项目。否则,将覆盖该项目。BaseTuner的参数。属性
max_trials则为None。当恢复之前停止的搜索时,此参数很有用。get_best_hyperparameters 方法Tuner.get_best_hyperparameters(num_trials=1)
返回最佳超参数,由目标函数确定。
此方法可用于重新实例化搜索过程中找到的(未训练的)最佳模型。
示例
best_hp = tuner.get_best_hyperparameters()[0]
model = tuner.hypermodel.build(best_hp)
参数
HyperParameters对象的可选数量。返回
从最佳到最差排序的HyperParameter对象列表。
get_best_models 方法Tuner.get_best_models(num_models=1)
返回最佳模型(根据调优器的目标函数确定)。
模型加载时会带有其最佳检查点(在最佳 trial 的最佳 epoch 结束时)对应的权重。
此方法用于查询搜索过程中训练的模型。为了获得最佳性能,建议使用search期间找到的最佳超参数(可通过tuner.get_best_hyperparameters()获取)在完整数据集上重新训练您的模型。
参数
返回
从最佳到最差排序的已训练模型实例列表。
get_state 方法Tuner.get_state()
返回此对象的当前状态。
在save期间调用此方法。
返回
一个可序列化对象的字典作为状态。
load_model 方法Tuner.load_model(trial)
从给定的 trial 加载模型。
对于向Oracle报告中间结果的模型,通常load_model应该通过依赖trial.best_step来加载报告的最佳step。
参数
Trial实例,对应要加载的模型。on_epoch_begin 方法Tuner.on_epoch_begin(trial, model, epoch, logs=None)
在一个 epoch 开始时调用。
参数
Trial实例。Model。on_batch_begin 方法Tuner.on_batch_begin(trial, model, batch, logs)
在一个 batch 开始时调用。
参数
Trial实例。Model。on_batch_end 方法Tuner.on_batch_end(trial, model, batch, logs=None)
在一个 batch 结束时调用。
参数
Trial实例。Model。on_epoch_end 方法Tuner.on_epoch_end(trial, model, epoch, logs=None)
在一个 epoch 结束时调用。
参数
Trial实例。Model。run_trial 方法Tuner.run_trial(trial, )
评估一组超参数值。
此方法在search期间被多次调用,以构建和评估具有不同超参数的模型并返回目标值。
示例
您可以使用self.hypermodel来构建和拟合模型。
def run_trial(self, trial, *args, **kwargs):
hp = trial.hyperparameters
model = self.hypermodel.build(hp)
return self.hypermodel.fit(hp, model, *args, **kwargs)
您也可以将其用作任何内容的黑盒优化器。
def run_trial(self, trial, *args, **kwargs):
hp = trial.hyperparameters
x = hp.Float("x", -2.0, 2.0)
y = x * x + 2 * x + 1
return y
参数
Trial实例,包含运行此 trial 所需的信息。可以通过trial.hyperparameters访问超参数。search传递的位置参数。search传递的关键字参数。返回
一个History对象,它是model.fit()的返回值,一个字典,一个浮点数,或上述任一类型的列表。
如果返回字典,则应为要跟踪的指标字典。键是指标名称,其中包含objective名称。值应该是指标值。
如果返回浮点数,则应为objective值。
如果对模型进行多次评估,您可以返回上述任何类型的結果列表。最终目标值是列表中结果的平均值。
results_summary 方法Tuner.results_summary(num_trials=10)
显示调优结果摘要。
该方法打印搜索结果的摘要,包括每个 trial 的超参数值和评估结果。
参数
save_model 方法Tuner.save_model(trial_id, model, step=0)
为给定的 trial 保存模型。
参数
Trial的 ID。Oracle报告中间结果的模型,该文件对应于保存的步数。例如,对于 Keras 模型,这是训练的 epoch 数。search 方法Tuner.search(*fit_args, **fit_kwargs)
执行最佳超参数配置的搜索。
参数
run_trial的位置参数,例如训练和验证数据。run_trial的关键字参数,例如训练和验证数据。search_space_summary 方法Tuner.search_space_summary(extended=False)
打印搜索空间摘要。
该方法打印搜索空间中超参数的摘要,可以在调用search方法之前调用。
参数
set_state 方法Tuner.set_state(state)
设置此对象的当前状态。
在reload期间调用此方法。
参数