python - 如何从外部应用程序驱动 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 中指定,这也是我计划如何区分训练和使用的方式。)
解决方案
推荐阅读
- javascript - 从另一个函数调用的箭头函数中“this”的值
- android - 使用改造参数“soap12:Body”使用xml webservice在类中没有匹配项
- java - 如何从 HTTP CORS 获取文件信息?
- sqlite - 如何在字符串中查找第一个字符(SQLITE)
- python - 如何修复“['Student Name'] 不在索引中”?
- python - pip 未被识别为内部命令
- mysql - MariaDb 查询图中的最大深度
- html - 试图从 a-tag 内的 span 元素中抓取文本
- javascript - 无法为特定脚本禁用 Cloudflare 的 Rocket Loader。我究竟做错了什么?WordPress
- typescript - 在 VSCODE 中导入语句自动转换为多行