Aktionsauswahl in REINFORCE
Schreibe die Funktion REINFORCE select_action
, die von deinem REINFORCE Agenten verwendet wird, um bei jedem Schritt eine Aktion auszuwählen.
In DQN liefert der Vorwärtsdurchlauf des Netzwerks Q-Werte; in REINFORCE liefert er Aktionswahrscheinlichkeiten, aus denen eine Aktion direkt ausgewählt werden kann.
In deiner Umgebung wurden ein Policy-Netzwerk und ein Status geladen.
torch.distributions.Categorical
wurde importiert als Categorical.
Diese Übung ist Teil des Kurses
Deep Reinforcement Learning in Python
Anleitung zur Übung
- Erhalte die Aktionswahrscheinlichkeiten als Fackeltensor.
- Erhalte die Fackelverteilung, die den Aktionswahrscheinlichkeiten entspricht.
- Ziehe eine Aktion aus der Verteilung.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
def select_action(policy_network, state):
# Obtain the action probabilities
action_probs = ____
print('Action probabilities:', action_probs)
# Instantiate the action distribution
action_dist = Categorical(____)
# Sample an action from the distribution
action = ____
log_prob = action_dist.log_prob(action)
return action.item(), log_prob.reshape(1)
state = torch.rand(8)
action, log_prob = select_action(policy_network, state)
print('Sampled action index:', action)
print(f'Log probability of sampled action: {log_prob.item():.2f}')