我已经在自定义环境中训练了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( )
似乎是从随机策略中返回随机样本,而不是最优操作。
答案 0 :(得分:0)
根据我与Ray-dev Google小组联系的Ray开发人员的说法,当前唯一实现此目的的方法是使用自定义操作分布,其中方差设置为零。他确实指出,但是,很快将添加改进的界面。