Train

Note

The following code demonstrates the core training logic. Numerous configurable options are available — refer to Quickstart > Config for details.

Important

The following is the code specific to Linux. If you are using Windows, please add:
if __name__ == "__main__":

🧪 General Training Code

from metaevobox import Config, Trainer
# import meta-level agent of MetaBBO you want to meta-train
from metaevobox.baseline.metabbo import XXX
# import low-level BBO optimizer of MetaBBO you want to meta-train
from metaevobox.environment.optimizer import XXX_Optimizer
from metaevobox.environment.problem.utils import construct_problem_set

# put user-specific configuration
user_config = {'train_problem': "xxx", # specify the problem set you want to train your MetaBBO 
          'train_batch_size': 16,
          'train_parallel_mode':'subproc', # choose parallel training mode
          }
config = Config(user_config)

# construct dataset
config, datasets = construct_problem_set(config)

# initialize your MetaBBO's meta-level agent & low-level optimizer
agent = XXX(config)
optimizer = XXX_Optimizer(config)

trainer = Trainer(config, agent, optimizer, dataset)
trainer.train()

If you want to check out the visualized information of the training progress, run following code to start training logger.

cd your_dir/output/tensorboard
tensorboard --logdir=./

🎯 Example: Train GLEET on COCO’s BBOB (10D, easy)

from metaevobox import Config, Trainer
# import meta-level agent of MetaBBO you want to meta-train
from metaevobox.baseline.metabbo import GLEET
# import low-level BBO optimizer of MetaBBO you want to meta-train
from metaevobox.environment.optimizer import GLEET_Optimizer
from metaevobox.environment.problem.utils import construct_problem_set

# put user-specific configuration
config = {'train_problem': 'bbob-10D', # specify the problem set you want to train your MetaBBO 
          'train_batch_size': 16,
          'train_parallel_mode':'subproc', # choose parallel training mode
          }
config = Config(config)
# construct dataset
config, datasets = construct_problem_set(config)
# initialize your MetaBBO's meta-level agent & low-level optimizer
gleet = GLEET(config)
gleet_opt = GLEET_Optimizer(config)
trainer = Trainer(config, gleet, gleet_opt, datasets)
trainer.train()

Tip

Train your algorithm on MetaBox — refer to Developer Guide > Develop your MetaBBO for details.