【问题标题】:Simulation and visualization libraries for reinforcement learning in python?在 python 中用于强化学习的模拟和可视化库?
【发布时间】:2016-05-12 15:07:07
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      一般来说,这就是 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 建模环境。

      【讨论】:

      • 感谢您的详细回答。您确实列出了所有可视化库并进行了比较。但我一直在寻找专为强化学习量身定制的东西,这样我就可以专注于 ML 算法,而不是在视觉上大汗淋漓。
      猜你喜欢
      • 2011-02-14
      • 2018-11-05
      • 2016-10-24
      • 2019-11-21
      • 2013-12-06
      • 2022-12-28
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多