Aan de slagGa gratis aan de slag

De Q-Network-architectuur

Je bent bijna klaar om je eerste Deep Reinforcement Learning-agent te trainen! Voordat je aan je eerste volledige trainingslus begint, heb je een neurale netwerkarchitectuur nodig die de beslissingen van de agent aanstuurt en het leervermogen bepaalt.

Je gaat de generieke architectuur aanpassen die je in een eerdere oefening hebt gedefinieerd. torch en torch.nn zijn al geïmporteerd in je oefeningen.

Deze oefening maakt deel uit van de cursus

Deep Reinforcement Learning in Python

Cursus bekijken

Oefeninstructies

  • Instantier de eerste verborgen laag; de input is de omgevingstoestand met dimensie state_size.
  • Instantier de outputlaag; deze levert de Q-waarden voor elke actie, met dimensie action_size.
  • Maak de forward()-methode af; gebruik de activatiefunctie torch.relu in dit voorbeeld.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren