簡體   English   中英

Tensorflow 2.x 代理(TF-代理,強化學習模塊)和 PySC2

[英]Tensorflow 2.x Agents(TF-Agents, Reinforcement Learning Module) & PySC2

有pysc2( https://github.com/deepmind/pysc2 ) & Tensorflow(1.x) 和OpenAI-Baselines( https://github.com/openai/baselines ),像下面這樣

https://github.com/chris-chris/pysc2-examples
https://github.com/llSourcell/A-Guide-to-DeepMinds-StarCraft-AI-Environment

TF 團隊最近提出了一個稱為 TF-Agents ( https://github.com/tensorflow/agents ) 的 RL 實現(替代 OpenAi-Baselines)。 例子:

https://github.com/tensorflow/agents/blob/master/docs/tutorials/1_dqn_tutorial.ipynb
https://github.com/jeffheaton/t81_558_deep_learning/blob/master/t81_558_class_12_05_apply_rl.ipynb
https://github.com/jeffheaton/t81_558_deep_learning/blob/master/t81_558_class_12_04_atari.ipynb

對於 TF-Agents,你做

env_name = 'CartPole-v0'
train_py_env = suite_gym.load(env_name)
eval_py_env = suite_gym.load(env_name)

q_net = q_network.QNetwork(
    train_env.observation_spec(),
    train_env.action_spec(),
    fc_layer_params=fc_layer_params)

optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)

agent = dqn_agent.DqnAgent(
    train_env.time_step_spec(),
    train_env.action_spec(),
    q_network=q_net,
    optimizer=optimizer,
    td_errors_loss_fn=common.element_wise_squared_loss,
    train_step_counter=train_step_counter)
agent.initialize()

對於 pysc2,

from pysc2.env import environment
from pysc2.env import sc2_env
from pysc2.lib import actions
from pysc2.lib import actions as sc2_actions
from pysc2.lib import features
mineral_env = sc2_env.SC2Env(
        map_name="CollectMineralShards",
        step_mul=step_mul,
        agent_interface_format=AGENT_INTERFACE_FORMAT,
        visualize=True)

如何將 TF-Agents 和 Pysc2 組合在一起? 它們都是谷歌產品。

我最近偶然發現了一個非常相似的情況,我想將 DeepMind 開發的 hanabi-learning-environment 與 TF-Agents 一起使用。 恐怕我不得不說對此沒有很好的解決方案。

您必須做的是分叉 DeepMind 存儲庫並修改環境包裝器以與 TF-Agents 的要求兼容。 這將是相當多的工作要做,特別是如果你不熟悉 TF-Agents 中環境的定義方式,但這是 def.netly 可以在大約一周的工作中完成的事情。

如果你想了解我做了什么,你可以查看 DeepMind 的 Hanabi 存儲庫中的原始rl_env.py代碼,以及我在我的存儲中將其修改成的內容

我不知道為什么 DeepMind 堅持他們的結構而不是讓他們的代碼更兼容,但事實就是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM