在经过培训的环境中,如何在特定状态下评估策略?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在经过培训的环境中,如何在特定状态下评估策略?相关的知识,希望对你有一定的参考价值。

我已经在自定义环境中训练了Ray-RLlib PPOTrainer。如何评估特定状态下的政策?

完整示例:

from ray.rllib.agents.ppo import PPOTrainer
from cust_env.envs import CustEnv
from ray.tune.logger import pretty_print

ray.init()
config = ppo.DEFAULT_CONFIG.copy()
config["num_workers"] = 2
config["eager"] = False
config["output"] = 'tmp/debug/'
trainer = PPOTrainer(config=config, env=TravelEnv)

# Can optionally call trainer.restore(path) to load a checkpoint.

for i in range(101):

   result = trainer.train()

   if i % 10 == 0:
       print(pretty_print(result))

是否有一种类似以下的方法,可以在给定状态下返回最佳动作?

policy = trainer.get_policy()
optimal_action_at_state_S = policy.get_optimal_action(S)

函数policy.compute_actions( )似乎是从随机策略中返回随机样本,而不是最佳操作。

答案

据我通过Ray-dev Google小组联系过的Ray开发人员,目前唯一实现此目的的方法是使用自定义操作分布,其中方差设置为零。他确实指出,但是,很快将添加改进的界面。

以上是关于在经过培训的环境中,如何在特定状态下评估策略?的主要内容,如果未能解决你的问题,请参考以下文章

如何评估在 rllib (Ray) 中自定义环境中训练的演员?

如何在没有评估环境的情况下对函数进行集群导出

如何评估CDN加速的效果

typescript Angular 4的RouteReuse策略(经过测试)。这可用于记住特定组件的状态。例如 - 当某条路线是

CCF201803-4棋局评估,对抗搜索,极大极小算法

如何在 Clojure 中对函数进行基准测试?