我使用Ray & RLlib在Ubuntu系统上训练RL代理。Tensorboard用于监视培训进度,方法是将其指向~/ray_results
,其中存储所有运行的所有日志文件。雷·特恩没有被使用。
例如,在启动新的Ray/RLlib培训运行时,将在
~/ray_results/DQN_ray_custom_env_2020-06-07_05-26-32djwxfdu1
要可视化培训进度,我们需要启动Tensorboard
tensorboard --logdir=~/ray_results
问题:是否可以将Ray/RLlib配置为将日志文件的输出目录从~/ray_results
更改到另一个位置?
此外,与其登录到一个名为DQN_ray_custom_env_2020-06-07_05-26-32djwxfdu1
的目录,我们还能自行设置这个目录名吗?
失败尝试:尝试设置
os.environ['TUNE_RESULT_DIR'] = '~/another_dir`
在运行ray.init()
之前,但是结果日志文件仍然被写入~/ray_results
。
发布于 2020-08-13 11:26:45
是否可以将Ray/RLlib配置为将日志文件的输出目录从~/ray_results更改到另一个位置?
目前无法使用RLib CLI工具(rllib
)对其进行配置。
如果您对Python没有意见,那么,正如文档中所描述的,tune.run
的local_dir
参数负责指定输出目录,默认情况是~/ray_results
。
此外,与其登录到一个名为DQN_ray_custom_env_2020-06-07_05-26-32djwxfdu1,的目录,我们可以自行设置这个目录名吗?
这取决于tune.run
的tune.run
参数。它必须是接受试用对象并将其格式化为如下所示的字符串的函数:
def trial_name_id(trial):
return f"{trial.trainable_name}_{trial.trial_id}"
tune.run(...trial_name_creator=trial_name_id)
发布于 2021-02-11 18:13:19
不用调优,就可以使用rllib的“培训器”更改logdir。如果要指定保存日志的位置(请参阅这里),“培训器”类将接受一个可选的“这里”。
一个具体的例子:
def custom_log_creator(custom_path, custom_str):
timestr = datetime.today().strftime("%Y-%m-%d_%H-%M-%S")
logdir_prefix = "{}_{}".format(custom_str, timestr)
def logger_creator(config):
if not os.path.exists(custom_path):
os.makedirs(custom_path)
logdir = tempfile.mkdtemp(prefix=logdir_prefix, dir=custom_path)
return UnifiedLogger(config, logdir, loggers=None)
return logger_creator
trainer = PPOTrainer(config=config, env='CartPole-v0',
logger_creator=custom_log_creator(os.path.expanduser("~/another_ray_results/subdir"), 'custom_dir'))
for i in range(ITER_NUM):
result = trainer.train()
您将找到培训结果(例如,TensorBoard事件文件、params、模型、.)用您指定的命名约定保存在“~/ under _ray_results/subdir”下。
https://stackoverflow.com/questions/62241261
复制相似问题