首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >改变射线RLlib训练的日志而不是~/ Ray结果

改变射线RLlib训练的日志而不是~/ Ray结果
EN

Stack Overflow用户
提问于 2020-06-07 05:34:38
回答 2查看 4.8K关注 0票数 11

我使用Ray & RLlib在Ubuntu系统上训练RL代理。Tensorboard用于监视培训进度,方法是将其指向~/ray_results,其中存储所有运行的所有日志文件。雷·特恩没有被使用。

例如,在启动新的Ray/RLlib培训运行时,将在

代码语言:javascript
运行
复制
~/ray_results/DQN_ray_custom_env_2020-06-07_05-26-32djwxfdu1

要可视化培训进度,我们需要启动Tensorboard

代码语言:javascript
运行
复制
tensorboard --logdir=~/ray_results

问题:是否可以将Ray/RLlib配置为将日志文件的输出目录从~/ray_results更改到另一个位置?

此外,与其登录到一个名为DQN_ray_custom_env_2020-06-07_05-26-32djwxfdu1的目录,我们还能自行设置这个目录名吗?

失败尝试:尝试设置

代码语言:javascript
运行
复制
os.environ['TUNE_RESULT_DIR'] = '~/another_dir`

在运行ray.init()之前,但是结果日志文件仍然被写入~/ray_results

EN

回答 2

Stack Overflow用户

发布于 2020-08-13 11:26:45

是否可以将Ray/RLlib配置为将日志文件的输出目录从~/ray_results更改到另一个位置?

目前无法使用RLib CLI工具(rllib)对其进行配置。

如果您对Python没有意见,那么,正如文档中所描述的,tune.runlocal_dir参数负责指定输出目录,默认情况是~/ray_results

此外,与其登录到一个名为DQN_ray_custom_env_2020-06-07_05-26-32djwxfdu1,的目录,我们可以自行设置这个目录名吗?

这取决于tune.runtune.run参数。它必须是接受试用对象并将其格式化为如下所示的字符串的函数:

代码语言:javascript
运行
复制
def trial_name_id(trial):
    return f"{trial.trainable_name}_{trial.trial_id}"

tune.run(...trial_name_creator=trial_name_id)
票数 5
EN

Stack Overflow用户

发布于 2021-02-11 18:13:19

不用调优,就可以使用rllib的“培训器”更改logdir。如果要指定保存日志的位置(请参阅这里),“培训器”类将接受一个可选的“这里”。

一个具体的例子:

  1. 定义自定义的记录器创建者(您可以简单地从默认的记录器中修改):
代码语言:javascript
运行
复制
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
  1. 将此logger_creator传递给培训师,并开始培训:
代码语言:javascript
运行
复制
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”下。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62241261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档