L'architecture du réseau Q
Vous êtes presque prêt à former votre premier agent d'apprentissage par renforcement profond ! Avant de pouvoir passer à votre premier cycle de formation complet, vous devez disposer d'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.
Cet exercice fait partie du cours
Apprentissage par renforcement profond en Python
Instructions
- Instancier la première couche cachée ; son entrée sera l'état de l'environnement, avec pour dimensions
state_size. - Instanciez la couche de sortie ; elle fournit les valeurs Q pour chaque action, avec la dimension
action_size. - Veuillez compléter la méthode d'
forward(); veuillez utiliser la fonction d'activationtorch.relupour cet exemple.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)