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
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 activatiefunctietorch.reluin 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)