首页 > 解决方案 > 如何从外部应用程序驱动 keras-rl 训练?

问题描述

我正在尝试使用 keras-rl 来训练和使用 AI 来开发用 C++ 编写的带有 Python 绑定的游戏。这是我第一次使用 keras-rl,我发现它的期望与游戏 AI 界面的实现方式不一致。

据我了解,keras-rl 希望通过 Gym Environment 使用以下方法来驱动强化学习本身:

def reset(self) -> observation # start a new episode, get first observation
def step(self, action) -> observation, reward, done, info # provide an action, get next observation, etc

但是,C++ 应用程序希望通过以下方法调用 AI:

def start(self, episode_info) -> None # start a new episode
def select(self, observation) -> action # provide an observation, get back an action
def end(self, reward) -> None # end an episode (with a reward)

我怎样才能最好地调和这两种看似矛盾的方法?我是否需要在单独的进程中运行 keras-rl 并让它们以某种方式进行通信?

(请注意,该应用程序允许针对其他 AI 重复运行 AI,它在 episode_info 中指定,这也是我计划如何区分训练和使用的方式。)

标签: pythonkerasreinforcement-learningopenai-gymkeras-rl

解决方案


推荐阅读