#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()
.