从skopt中的检查点恢复高斯过程
Posted
技术标签:
【中文标题】从skopt中的检查点恢复高斯过程【英文标题】:Resume gaussian process from checkpoint in skopt 【发布时间】:2020-05-23 09:42:54 【问题描述】:我希望能够从库skopt 的检查点恢复高斯过程。经过一番研究,我找不到这样做的方法。
这是一个简单的代码来显示我想要做什么:
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,
)
我希望能够从之前的高斯过程优化中加载检查点并继续它,这样模型就不必再次从头开始学习所有内容。有没有办法这样做?
【问题讨论】:
【参考方案1】:skopt 文档中的This example 涵盖了保存和使用检查点——简而言之,在加载检查点对象后,您可以使用其x_iters
和func_vals
属性作为x0
和y0
关键字参数gp_minimize
。如果你没有加载检查点,你可以让x0
成为你的初始默认值,y0
是None
。
【讨论】:
以上是关于从skopt中的检查点恢复高斯过程的主要内容,如果未能解决你的问题,请参考以下文章