Возобновить процесс gp_minimize с контрольной точки в Скопте
Я хочу возобновить процесс GP, но получаю странные сообщения. Я запускаю свой процесс gp, предоставляя только x0 и y0=None. Мои начальные точки - 30 и n_evals = 50. Я останавливаю его на оценке № 20. Затем я загружаю результат и, следуя примеру из документации, предоставляю x0 и y0 (оба являются списками) и запускаю тот же процесс. (Я перезапустил ядро obv.) Однако даже после оценки нет. 12 появляется сообщение: Итерация № 13 началась. Оценка функции в случайной точке. где он должен искать следующую оптимальную точку.
Я делаю что-то неправильно?
x0 = res.x_iters
y0 = res.func_vals
gp_res = gp_minimize(func=fitness,
dimensions=space,
n_calls=50,
n_jobs=-1,
n_initial_points=30,
initial_point_generator=lhs,
verbose=True,
acq_func='gp_hedge',
acq_optimizer='lbfgs',
n_restarts_optimizer=15,
y0=y0,
random_state=seed,
callback=[checkpoint_callback,delta_callback],
n_points=10000,
kappa=1.96,
xi=0.01,
noise='gaussian',
model_queue_size=None,
x0=x0)
0 ответов
Была аналогичная проблема. В поисках ответа я наткнулся на эту проблему на странице GitHub: https://github.com/scikit-optimize/scikit-optimize/issues/949.
Предлагается "установить значение n_initial_points равным отрицательному значению числа значений в res0.x_iters", что, кажется, работает для меня.
В вашем случае я предполагаю, что это будет выглядеть так:
x0 = res.x_iters
y0 = res.func_vals
gp_res = gp_minimize(func=fitness,
dimensions=space,
n_calls=50,
n_jobs=-1,
->n_initial_points=-len(x0),
initial_point_generator=lhs,
verbose=True,
acq_func='gp_hedge',
acq_optimizer='lbfgs',
n_restarts_optimizer=15,
y0=y0,
random_state=seed,
callback=[checkpoint_callback,delta_callback],
n_points=10000,
kappa=1.96,
xi=0.01,
noise='gaussian',
model_queue_size=None,
x0=x0)