我知道keras,阻止nn的其他几个Python库,其中包括RL。但是,是否存在可以使可视化任务变得容易的库?在代理/环境的3D模型方面,看模拟等...我可以在网上看到一些RL视频,显示模拟的代理/环境,但要么他们从头开始制作视觉模型,要么使用其他语言/技术......(或者他们很老)
答案 0 :(得分:3)
一般来说,这是 3D可视化库和 3D科学可视化库之间的区别,它具有比以前更直接的“高级”可视化方法(直接调用散点图,曲面等)。
由于您没有指定要绘制的实际示例,因此我只能提供被认为简单的可行库(考虑到Python的3D lib世界)。
一个是VPython,其中very explicit syntax towards 3D primitives。 This将是构建球体和方框的有效代码:
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。其他相关的图书馆是:
还有其他像OpenSceneGraph,OpenGL或Coin3D的绑定,但很多都记录不清,或者学习曲线非常严格。
作为额外的,您可能还需要考虑Blender,因为您可以在其中使用Python,并且它具有非常丰富的3D建模环境。
答案 1 :(得分:3)
对于3D环境模拟/可视化,您可能对OpenAI Gym和MuJoCo感兴趣。