hyperas optim中的max eval参数最小化函数returns是什么?
What does max eval parameter in hyperas optim minimize function returns?
我正在尝试使用 Hyperas 调整参数,但我无法解释有关它的一些细节。
Q1) optim.minimize中的max_eval参数是做什么用的?
Q2) 它会遍历每个 max_eval 的每个参数组合并根据最好的参数给我最好的损失吗?
Q3) 如果我给 max_eval = 5 会怎样?
Q4) best_run 和 best_model returns 在完成所有 max_eval 之后是什么?
Q5) 在模型函数下,我返回损失为 -test_acc 它与调整参数有什么关系,为什么我们在那里使用负号?
def model(x_train, y_train, x_test, y_test):
dense_units1 = {{choice([64, 126, 256, 512])}}
activations = {{choice(['relu', 'sigmoid'])}}
epochs = 100
verbose = 0
model = Sequential([
# layer 1
Dense(dense_units1, activations, input_shape=(784,)),
....
....
....
])
# compiling model
model.compile(optimizers, loss='categorical_crossentropy', metrics=['accuracy'])
# fitting the model
result = model.fit(x_train, y_train, validation_split=0.2, batch_size=batch_size,
epochs=epochs, verbose=verbose, callbacks=[ES, MC])
test_loss, test_acc = model.evaluate(x_test, y_test, batch_size=512)
return {'loss': -test_acc, 'status': STATUS_OK, 'model': model}
best_run, best_model = optim.minimize(model=model, data=dataset, algo=tpe.suggest,
max_evals=5,
trials=Trials(), notebook_name='MNIST',
verbose=True)
max_eval
参数简单来说就是最大优化次数运行s。 (例如,如果 max_evals = 5
,Hyperas 将选择不同的超参数组合 5 次,并且每个组合 运行 您选择的 epoch 数量)
不,它将为每个 max_eval
经过一种超参数组合。超参数的最佳组合是在完成您在 max_eval
参数中给出的所有评估之后。
已在第一季度回答。
在这种情况下 best_model
和 best_run
将 return 相同。您应该将此添加到您的代码中:
print('Best performing model chosen hyper-parameters:')
print(best_run)
这将从它制作的所有 运行 中打印最佳超参数。
我正在尝试使用 Hyperas 调整参数,但我无法解释有关它的一些细节。
Q1) optim.minimize中的max_eval参数是做什么用的?
Q2) 它会遍历每个 max_eval 的每个参数组合并根据最好的参数给我最好的损失吗?
Q3) 如果我给 max_eval = 5 会怎样?
Q4) best_run 和 best_model returns 在完成所有 max_eval 之后是什么?
Q5) 在模型函数下,我返回损失为 -test_acc 它与调整参数有什么关系,为什么我们在那里使用负号?
def model(x_train, y_train, x_test, y_test):
dense_units1 = {{choice([64, 126, 256, 512])}}
activations = {{choice(['relu', 'sigmoid'])}}
epochs = 100
verbose = 0
model = Sequential([
# layer 1
Dense(dense_units1, activations, input_shape=(784,)),
....
....
....
])
# compiling model
model.compile(optimizers, loss='categorical_crossentropy', metrics=['accuracy'])
# fitting the model
result = model.fit(x_train, y_train, validation_split=0.2, batch_size=batch_size,
epochs=epochs, verbose=verbose, callbacks=[ES, MC])
test_loss, test_acc = model.evaluate(x_test, y_test, batch_size=512)
return {'loss': -test_acc, 'status': STATUS_OK, 'model': model}
best_run, best_model = optim.minimize(model=model, data=dataset, algo=tpe.suggest,
max_evals=5,
trials=Trials(), notebook_name='MNIST',
verbose=True)
max_eval
参数简单来说就是最大优化次数运行s。 (例如,如果max_evals = 5
,Hyperas 将选择不同的超参数组合 5 次,并且每个组合 运行 您选择的 epoch 数量)不,它将为每个
max_eval
经过一种超参数组合。超参数的最佳组合是在完成您在max_eval
参数中给出的所有评估之后。已在第一季度回答。
在这种情况下
best_model
和best_run
将 return 相同。您应该将此添加到您的代码中:print('Best performing model chosen hyper-parameters:') print(best_run)
这将从它制作的所有 运行 中打印最佳超参数。