我正在尝试运行我在GitHub上找到的强化学习基线代码的自定义版本:(https://github.com/openai/baselines/tree/master/baselines/ppo2)。
无论我做什么,我总是得到相同的显示,显示如下:
我应该在哪里编辑它?我知道应该编辑“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
相关的输出。