1

我正在使用最新的合作推送块环境(https://github.com/Unity-Technologi...nvironment-Examples.md#cooperative-push-block)(导出以使用 Python API)稳定版。问题是我没有得到奖励(正面或负面)。它始终为 0。如果我导出推块环境,我会正确收到奖励。下面是我在协作示例https://github.com/Unity-Technologies/ml-agents/blob/main/docs/Python-API.md中使用的代码

decision_steps, terminal_steps = env.get_steps(behavior_name)
if tracked_agent in decision_steps:
    episode_rewards += decision_steps[tracked_agent].reward

print('REWARD', decision_steps.reward) # Always 0
# Each decision_steps[tracked_agent].reward also returns 0

根据文档,我应该收到负惩罚 (-0.0001) 或正信号 +1、+2、+3。即使他们随机推送一个块,我也会收到 0 作为奖励。

他们在文档中说奖励是作为“团体奖励”给予的。我不知道这是否意味着对上述代码的更改。

4

1 回答 1

0

我从 Unity ml-agents GitHub 问题部分收到了这个答案:

DecisionStep 还有一个group_reward字段,它与reward 字段分开。给予合作 Pushblock 代理的群体奖励应该在这里。我们很抱歉合作没有明确指出这一点,我会对其进行更新。

https://github.com/Unity-Technologies/ml-agents/issues/5567

于 2021-10-06T07:04:54.120 回答