DRL Trainingsschleife
Damit der Agent die Umgebung wiederholt erleben kann, musst du eine Trainingsschleife einrichten.
Viele DRL Algorithmen haben diese Kernstruktur gemeinsam:
- Schleife durch Episoden
- Schleife durch Schritte innerhalb jeder Episode
- Bei jedem Schritt wählst du eine Aktion, berechnest den Verlust und aktualisierst das Netzwerk
Du erhältst Platzhalter select_action()
und calculate_loss()
Funktionen, mit denen der Code ausgeführt werden kann. Die in der vorherigen Übung definierten Network
und optimizer
stehen dir ebenfalls zur Verfügung.
Diese Übung ist Teil des Kurses
Deep Reinforcement Learning in Python
Anleitung zur Übung
- Stelle sicher, dass die äußere Schleife (über Episoden) zehn Episoden lang läuft.
- Sorge dafür, dass die innere Schleife (über Schritte) läuft, bis die Episode abgeschlossen ist.
- Führe die von
select_action()
ausgewählte Aktion in derenv
Umgebung aus. - Am Ende einer Iteration der inneren Schleife aktualisierst du den Status, bevor du den nächsten Schritt beginnst.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
env = gym.make("LunarLander-v2")
# Run ten episodes
for episode in ____:
state, info = env.reset()
done = False
# Run through steps until done
while ____:
action = select_action(network, state)
# Take the action
next_state, reward, terminated, truncated, _ = ____
done = terminated or truncated
loss = calculate_loss(network, state, action, next_state, reward, done)
optimizer.zero_grad()
loss.backward()
optimizer.step()
# Update the state
state = ____
print(f"Episode {episode} complete.")