DRL Trainingsschleife

Damit der Agent die Umgebung wiederholt erleben kann, musst du eine Trainingsschleife einrichten.

Viele DRL Algorithmen haben diese Kernstruktur gemeinsam:

  1. Schleife durch Episoden
  2. Schleife durch Schritte innerhalb jeder Episode
  3. 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

Kurs anzeigen

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 der env 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.")