L'architecture du réseau Q
Vous êtes presque prêt à entraîner votre premier agent de Deep Reinforcement Learning ! Avant de lancer votre première boucle d'entraînement complète, il vous faut une architecture de réseau neuronal pour guider les décisions de l'agent et sa capacité d'apprentissage.
Vous allez modifier l'architecture générique que vous avez définie dans un exercice précédent.
torch et torch.nn sont importés dans vos exercices.
Cette activité fait partie du cours
Deep Reinforcement Learning en Python
Instructions de l’exercice
- Instanciez la première couche cachée; son entrée sera l'état de l'environnement, de dimension
state_size. - Instanciez la couche de sortie; elle fournit les valeurs Q pour chaque action, de dimension
action_size. - Complétez la méthode
forward(); utilisez la fonction d'activationtorch.relupour cet exemple.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
class QNetwork(nn.Module):
def __init__(self, state_size, action_size):
super(QNetwork, self).__init__()
# Instantiate the first hidden layer
self.fc1 = nn.Linear(____, ____)
self.fc2 = nn.Linear(64, 64)
# Instantiate the output layer
self.fc3 = nn.Linear(____, ____)
def forward(self, state):
# Ensure the ReLU activation function is used
x = ____(self.fc1(torch.tensor(state)))
x = ____(self.fc2(x))
return self.fc3(x)