CommencezCommencez gratuitement

Sélection d'action dans REINFORCE

Écrivez la fonction select_action de REINFORCE, qui sera utilisée par votre agent REINFORCE pour choisir une action à chaque étape.

Dans DQN, la passe avant du réseau retournait des valeurs Q; dans REINFORCE, elle retourne des probabilités d'action, à partir desquelles on peut échantillonner une action directement.

Un réseau de stratégie (policy network) et un état ont été chargés dans votre environnement.

torch.distributions.Categorical a été importé sous le nom Categorical.

Cette activité fait partie du cours

Deep Reinforcement Learning en Python

Voir le cours

Instructions de l’exercice

  • Obtenez les probabilités d'action sous forme de tenseur torch.
  • Obtenez l'objet torch Distribution correspondant aux probabilités d'action.
  • Échantillonnez une action à partir de cette distribution.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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}')
Modifier et exécuter le code