PKU-DAIR / open-box

Generalized and Efficient Blackbox Optimization System
https://open-box.readthedocs.io
Other
356 stars 52 forks source link

自定义Acquisition Function和Surrogate Model #91

Closed BhAem closed 1 month ago

BhAem commented 3 months ago

请问Open Box支持自定义Acquisition Function和Surrogate Model吗?

jhj0411jhj commented 3 months ago

请参考https://open-box.readthedocs.io/en/latest/developers_guide/extend_openbox.html,谢谢!

BhAem commented 1 month ago

对于只自定义 Acquisition Function 的情况,根据文档,新 Acquisition Function 需要初始化 Surrogate Model:

class MyAcquisitionFunction(AbstractAcquisitionFunction):
    def __init__(self,
                 model,
                 par: float = 0.0,
                 **kwargs):
from openbox import Advisor
advisor = Advisor(...)
advisor.acquisition_function = MyAcquisitionFunction(model=xxx)

这种情况下,MyAcquisitionFunction 初始化的 model 怎么弄?

jhj0411jhj commented 1 month ago

如果是单目标优化,以下代码即可:

advisor.acquisition_function = MyAcquisitionFunction(model=advisor.surrogate_model)