OpenAI研究 Python中更快的物理
正在开源一个高性能 Python 库,用于使用 MuJoCo 引擎进行机器人仿真,该引擎是我们在过去一年的机器人研究中开发的。
该库是我们用于深度学习机器人研究的核心工具之一 ,我们现在已将其作为 mujoco-py的主要版本发布,这是我们针对 MuJoCo 的 Python 3 绑定。mujoco-py 1.50.1.0 带来了许多新功能和显着的性能提升。新功能包括:
- 高效处理并行模拟
- GPU 加速的无头 3D 渲染
- 直接访问 MuJoCo 函数和数据结构
- 支持所有 MuJoCo 1.50 功能, 例如改进的接触解算器
批量模拟
轨迹优化和强化学习中的许多方法(如 LQR、 PI2和 TRPO)都受益于能够并行运行多个模拟。mujoco-py 通过OpenMP使用数据并行性 ,通过Cython 和 NumPy 使用直接访问内存管理 来提高批量模拟的效率。
新版本的 MjSimPool接口的简单使用 显示比旧版本提速 400%,并且仍然比使用 Python 的 多处理包 获得相同级别并行性的优化和受限使用模式提速约 180%。大部分加速来自减少对各种 MuJoCo 数据结构的访问时间。查看 examples/simpool.py
MjSimPool 之旅。
高性能纹理随机化

我们在 OpenAI 的许多项目中使用 域随机化技术。最新版本的 mujoco-py 支持 headless GPU 渲染;与基于 CPU 的渲染相比,这产生了大约 40 倍的加速,让我们每秒生成数百帧的合成图像数据。在上面的(放慢的)动画中,我们使用它来改变我们其中一个机器人的纹理,当我们将它从模拟器转移到现实时,这有助于它识别它的身体。查看 examples/disco_fetch.py 以获取随机纹理生成的示例。