Barebone DQN Aktionsauswahl

Die Funktion select_action() lässt den Agenten bei jedem Schritt die Aktion mit dem höchsten Q-Wert auswählen.

Die Funktion nimmt als Argument das Q-Netz und den aktuellen Zustand und gibt den Index der Aktion mit dem höchsten Q-Wert zurück.

Das Q-Netz wird als q_network instanziiert und ein zufälliger Zustand wurde mit state = torch.rand(8) in deine Umgebung geladen, damit du mit Beispieldaten arbeiten kannst.

Diese Übung ist Teil des Kurses

Deep Reinforcement Learning in Python

Kurs anzeigen

Anleitung zur Übung

  • Berechne die Q-Werte für jede Aktion in dem als Argument angegebenen Zustand.
  • Finde den Index, der der Aktion mit dem höchsten Q-Wert entspricht.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

def select_action(q_network, state):
    # Calculate the Q-values
    q_values = ____
    print("Q-values:", [round(x, 2) for x in q_values.tolist()])
    # Obtain the action index with highest Q-value
    action = torch.____.item()
    print(f"Action selected: {action}, with q-value {q_values[action]:.2f}")
    return action

select_action(q_network, state)