0

我有一堆构成环境和代理的 Java 代码。我想使用其中一个 Python 强化学习库(stable-baselines、tf-agents、rllib 等)来训练 Java 代理/环境的策略。然后在 Java 端部署策略进行生产。是否有将其他语言合并到 Python RL 库中的标准做法?我正在考虑以下解决方案之一:

  1. 将 Java env/agent 代码包装到 REST API 中,并在 Python 中实现自定义环境,调用该 API 以逐步通过环境。
  2. 使用 Py4j 从 Python 调用 Java 并实现自定义环境。

哪一个会更好?还有其他方法吗?

编辑:我最终选择了前者——部署了一个封装环境的 Web 服务器。对我来说效果很好。如果有更好的做法来处理这种情况,请留下问题!

4

1 回答 1

1

第一种方法很好。RLLib 以同样的方式为 PolicyServerInput 实现它。用于外部环境。 https://github.com/ray-project/ray/blob/82465f9342cf05d86880e7542ffa37676c2b7c4f/rllib/env/policy_server_input.py

所以看看他们的实现。它使用 Python 数据序列化,所以我想自己的 impl 最好连接到 Java。

于 2021-09-20T09:13:29.420 回答