如何更改GitHub上基线代码的输出/重放(PPO)?

我正在尝试运行我在GitHub上找到的强化学习基线代码的自定义版本:(https://github.com/openai/baselines/tree/master/baselines/ppo2)。

无论我做什么,我总是得到相同的显示,显示如下:

enter image description here

我应该在哪里编辑它?我知道应该编辑“learn”方法,但我不知道怎么做


回答:

这些打印输出是以下代码块的结果,可以在这个链接找到(至少在撰写本文时的最新修订版):

if update % log_interval == 0 or update == 1:    ev = explained_variance(values, returns)    logger.logkv("serial_timesteps", update*nsteps)    logger.logkv("nupdates", update)    logger.logkv("total_timesteps", update*nbatch)    logger.logkv("fps", fps)    logger.logkv("explained_variance", float(ev))    logger.logkv('eprewmean', safemean([epinfo['r'] for epinfo in epinfobuf]))    logger.logkv('eplenmean', safemean([epinfo['l'] for epinfo in epinfobuf]))    logger.logkv('time_elapsed', tnow - tfirststart)    for (lossval, lossname) in zip(lossvals, model.loss_names):        logger.logkv(lossname, lossval)    logger.dumpkvs()

如果你的目标是仍然在这里打印一些内容,但打印不同的东西(或以不同的格式打印相同的东西),你唯一的选择实际上是修改这个源文件(或者如果你所在代码的许可允许的话,将你需要的代码复制到一个新文件中,并在那里应用你的更改)。

如果你的目标只是抑制这些消息,那么在运行这个learn()函数之前运行以下代码可能是最简单的方法:

from baselines import loggerlogger.set_level(logger.DISABLED)

这是使用这个函数来禁用基线记录器的。不过,这也可能会禁用其他baselines相关的输出。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注