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
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)