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
<Kurs>Deep Reinforcement Learning in Python</Kurs>Ü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 derenvUmgebung 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.")