Как сказал Пунейт, настройка гиперпараматора не может выполняться локально в ML-Engine.
SciKit Optimize предоставляет простую в использовании оболочку, которая работает с любой моделью, включая оценщики.Просто поместите код, который запускает обучение для N эпох, в свою собственную функцию, которая возвращает оценочную метрику 1-auroc или потерю для минимизации.
import numpy as np
from skopt import gp_minimize
def train(hyperparam_config):
# set from passed in hyperparameters
learning_rate = hyperparam_config[0]
num_layers = hyperparam_config[2]
# run training
res = estimator.train_and_evaluate()...
return res['loss'] # return metric to minimize
hyperparam_config = [Real(0.0001, 0.01, name="learning_rate"),
Integer(3, 10, name="num_layers")]
res = gp_minimize(train, hyperparam_config)
with open('results.txt', 'w') as wf:
wf.write(str(res))
print(res)
Источник: https://github.com/scikit-optimize/scikit-optimize/blob/master/examples/hyperparameter-optimization.ipynb