亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多代理健身房環境中的隨機代理

多代理健身房環境中的隨機代理

慕婉清6462132 2021-08-17 18:35:37
我無法為多智能體健身房環境選擇隨機動作。def make_env(scenario_name, benchmark=False):    from multiagent.environment import MultiAgentEnv    import multiagent.scenarios as scenarios    # load scenario from script    scenario = scenarios.load(scenario_name + ".py").Scenario()    # create world    world = scenario.make_world()    # create multiagent environment    if benchmark:                env = MultiAgentEnv(world, scenario.reset_world, scenario.reward, scenario.observation, scenario.benchmark_data)    else:        env = MultiAgentEnv(world, scenario.reset_world, scenario.reward, scenario.observation)    return envenv = make_env('simple_tag')env.reset()for i in range(100):    env.render()    actions = [action_space.sample() for action_space in env.action_space]    env.step(actions)上面的代碼拋出這個錯誤:Traceback (most recent call last):  File "hello.py", line 22, in <module>    env.step(actions)  File "c:\multiagent-particle-envs\multiagent\environment.py", line 88, in step    self._set_action(action_n[i], agent, self.action_space[i])  File "c:\multiagent-particle-envs\multiagent\environment.py", line 174, in _set_action    agent.action.u[0] += action[0][1] - action[0][2]TypeError: 'int' object is not subscriptable我找不到解決辦法,因為關于這些多代理環境的討論還不夠多。
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

回答我自己的問題,讓我們考慮 simple_tag 環境。

env.action_space 對于這種環境給出:

[Discrete(5), Discrete(5), Discrete(5), Discrete(5)] (4 個代理)

這是我發現的誤導。我認為這些動作必須是一個包含 4 個元素的列表,例如:[0, 3, 4, 1]但它期望的是所有 4 個代理的單熱向量(5 個元素)。因此,對動作進行編碼的正確方法是:

[array([1., 0., 0., 0., 0.]), array([0., 0., 1., 0., 0.]), array([0., 0., 0., 0., 1.]),  array([0., 0., 0., 1., 0.])]

(視環境而定)


查看完整回答
反對 回復 2021-08-17
  • 1 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號