0

Ich kenne Keras, block n ein paar andere Python-Bibliotheken für nn, die RL unter anderem tun. Aber gibt es eine Bibliothek, die die Aufgabe der Visualisierung leicht machen kann? In Bezug auf 3D-Modell von Agenten/Umgebung, Sehen der Simulationen etc ... Ich kann einige RL-Videos online sehen, die den simulierten Agenten/Umgebung zeigen, aber entweder visuelle Modelle von Grund auf erstellt haben oder eine andere Sprache/Technologie verwendet haben ... (oder sie sind sehr alt)Simulations- und Visualisierungsbibliotheken für verstärkendes Lernen in Python?

Antwort

3

Wahrscheinlich interessiert Sie OpenAI Gym und MuJoCo für 3D-Umgebung Simulation/Visualisierung.

3

Allgemein gesprochen, dass der Unterschied zwischen einer Visualisierungsbibliothek 3D ist und 3D wissenschaftliche Visualisierung-Bibliothek, die ein „High-Level“ Konzept für die Visualisierung als der Stand hat (direkte Aufrufe von Streudiagrammen, Flächen und so weiter).

Da Sie kein konkretes Beispiel dessen angegeben haben, was Sie plotten möchten, kann ich nur brauchbare Bibliotheken bereitstellen, die als einfach betrachtet werden (unter Berücksichtigung des 3D-Lib-Universums von Python).

Eins ist VPython welches very explicit syntax towards 3D primitives hat. This würde eine Kugel für den Aufbau und ein Feld ein gültiger Code sein:

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) 

Wenn Sie eine Simulation auf eine sehr gut definierte Objekte wie Bilder, Oberflächen, verstreute Punkte und so weiter Sie vielleicht einen Blick auf die 3D-nehmen wollen Fähigkeiten von matplotlib:

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() 

auch Mayavi hat viele hohe ruft Plots gut kennen (aber ich denke, am Tag mich ich schreibe dies in Python noch nicht verfügbar ist 3, jemand korrigieren, wenn ich m falsch):

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 selbst basiert auf VTK, die auch eine Python-API hat. Andere relevante Bibliotheken sind:

  • pyQtGraph: sehr gut, wenn Sie Ihre Visualisierung (2D und 3D) in pyside oder PyQt einzubetten.
  • Glumpy
  • Vispy: Es ist immer noch sehr neu, aber ich erwarte große Dinge aus dieser Bibliothek. Wenn mich die Erinnerung nicht enttäuscht, wird sie von denselben Leuten gemacht, die Bibliotheken wie pyQtGraph, Glumpy und Galry mitgebracht haben.
  • Galry

Es gibt andere, wie die Bindungen für OpenSceneGraph, OpenGL oder Coin3D aber viele sind schlecht dokumentiert oder mit einer sehr harten Lernkurve.

Als Extra könnten Sie auch Blender betrachten, da Sie Python im Inneren verwenden können und es eine sehr reichhaltige Umgebung für 3D-Modellierung hat.

+0

danke für eine detaillierte antwort. Sie haben alle Visualisierungsbibliotheken aufgelistet und diese auch verglichen. Aber ich war auf der Suche nach etwas, das auf das Lernen durch Verstärkung zugeschnitten ist, so dass ich mich mehr auf ML-Algos konzentrieren konnte, als auf Visuals zu schwitzen. –