Kom igångKom igång gratis

Handlingsval i REINFORCE

Implementera funktionen select_action för REINFORCE, som agenten använder för att välja en handling vid varje steg.

I DQN returnerade nätverkets framåtpassage Q-värden. I REINFORCE returneras istället sannolikheter för varje handling, och en handling kan samplas direkt från dessa.

Ett policynätverk och ett tillstånd har lästs in i din miljö.

torch.distributions.Categorical har importerats som Categorical.

Den här övningen är en del av kursen

Djup förstärkningsinlärning i Python

Visa kurs

Övningsinstruktioner

  • Hämta handlingssannolikheterna som en torch-tensor.
  • Skapa den torch-fördelning som motsvarar handlingssannolikheterna.
  • Sampla en handling från fördelningen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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}')
Redigera och kör kod