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

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开发人员,目前唯一实现此目的的方法是使用自定义操作分布,其中方差设置为零。他确实指出,但是,很快将添加改进的界面。

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