在训练有素的环境下,如何在特定状态下评估策略?

时间:2019-12-02 16:56:52

标签: python reinforcement-learning ray

我已经在自定义环境中训练了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( )似乎是从随机策略中返回随机样本,而不是最优操作。

1 个答案:

答案 0 :(得分:0)

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