CommencerCommencer gratuitement

L'architecture du réseau politique

Construisez l'architecture d'un réseau de politiques que vous pourrez utiliser ultérieurement pour former votre agent de gradient de politique.

Le réseau de politiques prend l'état comme entrée et produit une probabilité dans l'espace d'action. Dans l'environnement Lunar Lander, vous travaillez avec quatre actions distinctes. Vous souhaitez donc que votre réseau génère une probabilité pour chacune de ces actions.

Cet exercice fait partie du cours

Apprentissage par renforcement profond en Python

Afficher le cours

Instructions

  • Indiquez la taille de la couche de sortie du réseau de politiques ; pour plus de flexibilité, utilisez le nom de la variable plutôt que le nombre réel.
  • Veuillez vous assurer que la couche finale renvoie des probabilités.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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