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. 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