gpt4 book ai didi

python - 如何在稳定的基线中获得 action_propability() 3

转载 作者:行者123 更新时间:2023-12-05 02:01:34 26 4
gpt4 key购买 nike

我刚刚开始使用稳定基线自学强化学习 3。我的长期目标是训练代理人玩特定的回合制棋盘游戏。不过,目前我对新事物感到不知所措。

我已经实现了一个健身房环境,我可以用它来手动玩我的游戏,或者让它选择随机 Action 。

目前,我一直在尝试让模型为我提供响应观察的 Action 。我环境的 Action 空间是 DiscreteSpace(256)。我使用 model = PPO('MlpPolicy', env, verbose=1) 环境创建模型。当我稍后调用 model.predict(observation) 时,我确实得到了一个看起来像 Action 的数字。当重复运行时,我得到不同的数字,我认为这是在未经训练的模型上预期的结果。

不幸的是,在我的游戏中,大多数行为在大多数州都是非法的,我想过滤它们并选择最合法的行为。或者简单地转储所有操作的输出结果,以了解正在发生的事情。

在浏览其他人的代码时,我看到了对 model.action_probability(observation) 的引用。不幸的是,据我所知,方法不是稳定基线 3 的一部分。从稳定基线 2 到 v3 的迁移指南只提到它没有被实现 [1]。

你能给我一个关于如何继续的提示吗?

最佳答案

以防将来有人看到这篇文章,这就是你如何为 PPO 做的。

import numpy as np
from stable_baselines3.common.policies import obs_as_tensor

def predict_proba(model, state):
obs = obs_as_tensor(state, model.policy.device)
dis = model.policy.get_distribution(obs)
probs = dis.distribution.probs
probs_np = probs.detach().numpy()
return probs_np

关于python - 如何在稳定的基线中获得 action_propability() 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66428307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com