强化学习-在Python RL框架中使用Java实现自定义环境



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

  1. 将Java环境/代理代码封装到REST API中,并在Python中实现调用该API来遍历环境的自定义环境。
  2. 使用Py4j从Python调用Java并实现自定义环境。

哪个更好?还有别的办法吗?

编辑:我最终选择了前者——部署一个封装环境的web服务器。很适合我。留下问题,以防有更好的做法来处理这种情况!

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

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

最新更新