强化学习框架RLlib教程005:Training APIs的使用(四)Debug和外部API

目录

  Eager模式(Eager Mode)

  使用pytorch

  Episode Traces

  日志冗长(Log Verbosity)

  栈追踪(Stack Traces)

  外部应用API(External Application API)

  参考资料


性能问题非常有用。

Eager模式(Eager Mode)

通过设置“eager”:True /“eager_tracing”:True配置选项可以在eager模式下运行用build_tf_policy构建的策略(大多数算法都是这样)。这将告诉RLlib在急切模式下执行模型的前向传递、动作分配、loss和stats函数。

由于您现在可以使用带有断点或Python print()的逐行调试来检查中间张量值,因此即时模式使调试更加容易。然而,Eager模式效率可以低于图模式。

 返回目录

使用pytorch

实现了TorchPolicy的Trainer将允许你执行rllib train并带有控制参数--torch。如果算法没有实现torch版本就会报错。

 返回目录

Episode Traces

可以使用Data output API保存episode以便debug。例如下面的命令将会执行PPO,并保存episode:

rllib train --run=PPO --env=CartPole-v0 \

    --config='{"output": "/tmp/debug", "output_compress_columns": []}'

# episode traces will be saved in /tmp/debug, for example

output-2019-02-23_12-02-03_worker-2_0.json

output-2019-02-23_12-02-04_worker-1_0.json

 返回目录

日志冗长(Log Verbosity)

你可以控制trainer打印日志的级别,通过log_level。合理的值有:“DEBUG”, “INFO”, “WARN” (default), and “ERROR”。

rllib train --env=PongDeterministic-v4 \

    --run=A2C --config '{"num_workers": 2, "log_level": "DEBUG"}'

 返回目录

栈追踪(Stack Traces)

可以使用ray stack命令在单个节点上转储所有Python工作程序的堆栈跟踪。这对于调试意外挂起或性能问题非常有用。

 返回目录

外部应用API(External Application API)

在一些例子(和外部环境交互)中,把RLlib当做一个独立的运行的server是一件有意义的事情,而不应该由RLlib自己管理外部的环境。

这个将会在后面的RLlib Environment中细谈

 返回目录

参考资料

https://docs.ray.io/en/latest/rllib.html

 返回目录

posted @ 2020-10-07 13:37  黎明程序员  阅读(862)  评论(0编辑  收藏  举报