LoslegenKostenlos starten

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

<Kurs>Deep Reinforcement Learning in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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.")
Code bearbeiten und ausführen