我正在尝试使用Keras Tuner进行超参数微调。我想最大化auc
。有人能帮助我使用kerastuner.Objective
作为自定义指标吗?
EXECUTIONS_PER_TRIAL = 5
b_tuner = BayesianOptimization(
tune_nn_model,
objective='val_binary_accuracy',
max_trials=MAX_TRIALS,
executions_per_trial=EXECUTIONS_PER_TRIAL,
directory='test_dir101897',
project_name='b_tune_nn',
seed=12347
)
我尝试定义一个自定义函数,如:
from sklearn import metrics
from keras import backend as K
def auc(y_true, y_pred):
auc = tf.metrics.auc(y_true, y_pred)[1]
K.get_session().run(tf.local_variables_initializer())
return auc
插上电源
objective='val_auc'
但这行不通
1条答案
按热度按时间w3nuxt5m1#
感谢@Shiva上面提供的GitHub页面,我尝试使用Keras调谐器获取验证数据的AUC,并且成功了。我的模型是一个LSTM,我已经创建了
MyHyperModel
类,以便能够调优batch_size
as described here。如果您想使用固定的batch_size
,则不必这样做。您可以取消注解任何其他指标,并以相同的方式基于它们进行正则化。