Začněte nyníZačněte zdarma

Výběr akce v algoritmu REINFORCE

Napiš funkci select_action pro algoritmus REINFORCE, kterou bude tvůj agent používat k výběru akce v každém kroku.

Zatímco v DQN vracel dopředný průchod sítě Q-hodnoty, v algoritmu REINFORCE vrací pravděpodobnosti akcí, ze kterých lze akci přímo vzorkovat.

V prostředí máš načtenou policy network a stav.

torch.distributions.Categorical byl importován jako Categorical.

Toto cvičení je součástí kurzu

Deep Reinforcement Learning v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Získej pravděpodobnosti akcí jako torch tensor.
  • Získej torch rozdělení (Distribution) odpovídající pravděpodobnostem akcí.
  • Vzorkuj akci z tohoto rozdělení.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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}')
Upravit a spustit kód