我希望能够从带库https://scikit-optimize.github.io/的检查点恢复高斯进程。经过一些研究,我找不到办法去做。
这里有一个简单的代码来展示我想要做的事情:
import skopt
LOAD = False # To continue the optimization from a checkpoint, I would like to be able to set True here
x = skopt.space.Real(low=-10, high=10, name='x')
y = skopt.space.Real(low=-10, high=10, name='y')
dimensions = [x, y]
x0 = [0, 0]
@skopt.utils.use_named_args(dimensions=dimensions)
def f_to_minimize(x, y):
return (x * y) ** 2 + (x + 2) ** 2
checkpoint_callback = skopt.callbacks.CheckpointSaver(
checkpoint_path='checkpoint.pkl',
)
saved_checkpoint = None
if LOAD:
saved_checkpoint = skopt.load('checkpoint.pkl') # <- How can I use this ?
search_result = skopt.optimizer.gp_minimize(
func=f_to_minimize,
dimensions=dimensions,
x0=x0,
callback=[checkpoint_callback],
n_calls=2,
n_random_starts=1,
)我希望能够从以前的高斯过程优化中加载一个检查点,然后继续它,这样模型就不必从头开始学习所有东西了。是否有办法这样做?
发布于 2020-02-07 09:14:23
skopt文档中的这个例子包括保存和使用检查点-简而言之,在加载检查点对象之后,可以将其x_iters和func_vals属性用作gp_minimize的x0和y0关键字参数。如果您没有加载检查点,您可以让x0作为您的初始默认值,而y0是None。
https://stackoverflow.com/questions/60110307
复制相似问题