[PYTHON] Verstärkungslernen 34 Erstellen Sie fortlaufende Agentenvideos

Es ist für Schüler der Mittelstufe bis zu Studenten gedacht, die neu in der KI sind. Es wird davon ausgegangen, dass Sie das Verstärkungslernen abgeschlossen haben 28.

Speichern Sie den Agenten beispielsweise während des Lernens zur Verstärkung alle 10.000 Schritte. Ich würde es gerne eins nach dem anderen spielen. Ich frage mich, ob dies es einfacher macht, den Wachstumsprozess des Lernens zu sehen. Sie können es auf Youtube usw. sehen und es wird immer besser.

Wenn Sie mit chokozainerRL Verstärkungslernen durchführen, wird ein Ordner wie folgt erstellt. files.png Gehen Sie wie folgt vor, um dies der Reihe nach zu lesen.

import os
import re
testdir='mydrive/OpenAI/CartPole/result_dqn_choko'
files = os.listdir(testdir)
files_dir = [f for f in files if os.path.isdir(os.path.join(testdir, f))]
agentList=[]
for f in files_dir:
  if re.search('_',f):
    f2=f.split('_')
    agentList.append([int(f2[0]),f])
agentList.sort()

Ich werde es mit gemountetem Google Drive machen. Wenn Sie es so sortieren, wie es ist, wird es als Zeichenfolge sortiert, sodass die Reihenfolge seltsam ist. Daher wird nur der vorhergehende numerische Wert herausgenommen, damit er sortiert werden kann.

Angenommen, env und agent sind definiert, gehen Sie wie folgt vor.

from matplotlib import animation
import matplotlib.pyplot as plt

frames = []
for item in agentList:
  agent.load(testdir+'/'+item[1])
  obs = env.reset()
  done = False
  R = 0
  t = 0
  while not done and t < 200:
    frames.append(env.render(mode = 'rgb_array'))
    action = agent.act(obs)
    obs, r, done, _ = env.step(action)
    R += r
    t += 1
  print('test episode:', item[1], 'R:', R)
  agent.stop_episode()
env.close()
from IPython.display import HTML
plt.figure(figsize=(frames[0].shape[1]/72.0, frames[0].shape[0]/72.0),dpi=72)
patch = plt.imshow(frames[0])
plt.axis('off') 
def animate(i):
  patch.set_data(frames[i])
anim = animation.FuncAnimation(plt.gcf(), animate, frames=len(frames),interval=50)
anim.save(testdir+"grouth.mp4")
HTML(anim.to_jshtml())

Recommended Posts

Verstärkungslernen 34 Erstellen Sie fortlaufende Agentenvideos
[Einführung] Stärkung des Lernens
Zukünftiges Verstärkungslernen_2
Zukünftiges Verstärkungslernen_1
Erweitertes Lernen 1 Python-Installation
Stärkung des Lernens 3 OpenAI-Installation
Stärkung des Lernens der dritten Zeile
Verstärkungslernen 37 Starten Sie automatisch mit Ataris Wrapper
[Lernen stärken] Banditenaufgabe
Python + Unity Enhanced Learning (Lernen)
Stärkung des Lernens 1 Einführungsausgabe
Stärkung des Lernens 18 Colaboratory + Acrobat + ChainerRL
Verbessertes Lernen 7 Protokollieren Sie die Ausgabe von Lerndaten
Stärkung des Lernens 17 Colaboratory + CartPole + ChainerRL
Stärkung des Lernens 28 colaboratory + OpenAI + chainerRL
Stärkung des Lernens 19 Colaboratory + Mountain_car + ChainerRL
Stärkung des Lernens 2 Installation von Chainerrl
[Lernen stärken] Tracking durch Multi-Agent
Stärkung des Lernens 6 First Chainer RL
Verbessertes Lernen ab Python
Stärkung des Lernens 20 Colaboratory + Pendulum + ChainerRL
Verstärkungslernen 5 Versuchen Sie, CartPole zu programmieren?
Verstärkungslernen 9 ChainerRL Magic Remodeling
Lernen stärken Lernen Sie von heute
Stärkung des Lernens 4 CartPole erster Schritt
Tiefe Stärkung des Lernens 1 Einführung in die Stärkung des Lernens
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
DeepMind Enhanced Learning Framework Acme
Verstärktes Lernen: Beschleunigen Sie die Wertiteration
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken ((1) Implementierung von Blackjack)