用于python强化学习的模拟和可视化库?

时间:2016-05-12 15:07:08

标签: python machine-learning visualization simulation reinforcement-learning

我知道keras,阻止nn的其他几个Python库,其中包括RL。但是,是否存在可以使可视化任务变得容易的库?在代理/环境的3D模型方面,看模拟等...我可以在网上看到一些RL视频,显示模拟的代理/环境,但要么他们从头开始制作视觉模型,要么使用其他语言/技术......(或者他们很老)

2 个答案:

答案 0 :(得分:3)

一般来说,这是 3D可视化库 3D科学可视化库之间的区别,它具有比以前更直接的“高级”可视化方法(直接调用散点图,曲面等)。

由于您没有指定要绘制的实际示例,因此我只能提供被认为简单的可行库(考虑到Python的3D lib世界)。

一个是VPython,其中very explicit syntax towards 3D primitivesThis将是构建球体和方框的有效代码:

from visual import *
ball = sphere(pos=(-5,0,0), radius=0.5, color=color.cyan)
wallR = box(pos=(6,0,0), size=(0.2,12,12), color=color.green)

如果您的模拟依赖于非常明确定义的对象,如图像,曲面,散点等,您可能需要查看matplotlib的3D功能:

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
xs = np.random.randint(0,100,100)
ys = np.random.randint(0,100,100)
zs = np.random.randint(0,100,100)
ax.scatter(xs, ys, zs, c=c)
plt.show()

同样Mayavi对知名情节有很多高级别的调用(但我认为在我写这篇文章的时候,这仍然不适用于Python 3,如果我错了,有人会纠正我):

import numpy
from mayavi.mlab import *

def test_surf():
    """Test surf on regularly spaced co-ordinates like MayaVi."""
    def f(x, y):
        sin, cos = numpy.sin, numpy.cos
        return sin(x + y) + sin(2 * x - y) + cos(3 * x + 4 * y)

    x, y = numpy.mgrid[-7.:7.05:0.1, -5.:5.05:0.05]
    s = surf(x, y, f)
    #cs = contour_surf(x, y, f, contour_z=0)
    return s

Mayavi本身基于VTK,它也有Python API。其他相关的图书馆是:

  • pyQtGraph:非常好,如果你想在PySide或PyQt中嵌入你的可视化(2D和3D)。
  • Glumpy
  • Vispy:它仍然很新,但我期待这个图书馆的好东西。如果记忆没有让我失望它是由带来使用pyQtGraph,Glumpy和Galry等库的人们制作的。
  • Galry

还有其他像OpenSceneGraphOpenGLCoin3D的绑定,但很多都记录不清,或者学习曲线非常严格。

作为额外的,您可能还需要考虑Blender,因为您可以在其中使用Python,并且它具有非常丰富的3D建模环境。

答案 1 :(得分:3)

对于3D环境模拟/可视化,您可能对OpenAI GymMuJoCo感兴趣。