CommencezCommencez gratuitement

L'architecture du réseau de stratégie

Bâtissez l'architecture d'un réseau de stratégie (Policy Network) que vous utiliserez ensuite pour entraîner votre agent à gradient de stratégie.

Le réseau de stratégie reçoit l'état en entrée et produit une probabilité dans l'espace des actions. Pour l'environnement Lunar Lander, vous travaillez avec quatre actions discrètes ; vous voulez donc que votre réseau produise une probabilité pour chacune de ces actions.

Cette activité fait partie du cours

Deep Reinforcement Learning en Python

Voir le cours

Instructions de l’exercice

  • Indiquez la taille de la couche de sortie du réseau de stratégie ; pour plus de flexibilité, utilisez le nom de la variable plutôt que le nombre lui-même.
  • Assurez-vous que la couche finale retourne des probabilités.

Exercice interactif pratique

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

class PolicyNetwork(nn.Module):
  def __init__(self, state_size, action_size):
    super(PolicyNetwork, self).__init__()
    self.fc1 = nn.Linear(state_size, 64)
    self.fc2 = nn.Linear(64, 64)
    # Give the desired size for the output layer
    self.fc3 = nn.Linear(64, ____)

  def forward(self, state):
    x = torch.relu(self.fc1(torch.tensor(state)))
    x = torch.relu(self.fc2(x))
    # Obtain the action probabilities
    action_probs = ____(self.fc3(x), dim=-1)
    return action_probs
  
policy_network = PolicyNetwork(8, 4)
action_probs = policy_network(state)
print('Action probabilities:', action_probs)
Modifier et exécuter le code