контрольная точка восстановления луча в rllib

#ray

Вопрос:

Рэй сохраняет кучу контрольных точек во время вызова agent.train() . Как мне узнать, какая из них является контрольной точкой с лучшим агентом для загрузки? Есть ли какая-либо функция, например tune-analysis-output.get_best_checkpoint(path, mode="max") , для изучения различных возможностей загрузки через контрольные точки?

Ответ №1:

Как ответили в https://discuss.ray.io/t/ray-restore-checkpoint-in-rllib/3186/2 вы можете использовать:

 analysis = tune.Analysis(experiment_path)  # can also be the result of `tune.run()`

trial_logdir = analysis.get_best_logdir(metric="metric", mode="max")  # Can also just specify trial dir directly

checkpoints = analysis.get_trial_checkpoints_paths(trial_logdir)  # Returns tuples of (logdir, metric)
best_checkpoint = analysis.get_best_checkpoint(trial_logdir, metric="metric", mode="max")
 

Видишь https://docs.ray.io/en/master/tune/api_docs/analysis.html#id1

Ответ №2:

 analysis = tune.run( 
    "A2C", 
    name = model_name,
    config = config, 
    ...
    checkpoint_freq = 5,
    checkpoint_at_end = True,
    restore = best_checkpoint 
    )



trial_logdir = analysis.get_best_logdir(metric="episode_reward_mean", mode="max")  
best_checkpoint = analysis.get_best_checkpoint(trial_logdir, metric="episode_reward_mean", mode="max")
 

Комментарии:

1. Спасибо за ответ, но это не работает для меня , так как то, что вы упомянули здесь, предназначено tune , а не для agent.train() .