Die Architektur des Q-Netzes
Du bist fast bereit, deinen ersten Deep Reinforcement Learning-Agenten zu trainieren! Bevor du mit deiner ersten vollständigen Trainingsschleife beginnen kannst, brauchst du eine neuronale Netzwerkarchitektur, um die Entscheidungen des Agenten und seine Lernfähigkeit zu steuern.
Du wirst die generische Architektur ändern, die du in einer früheren Übung definiert hast.
torch
und torch.nn
werden in deine Übungen importiert.
Diese Übung ist Teil des Kurses
Deep Reinforcement Learning in Python
Anleitung zur Übung
- Instanziere die erste versteckte Schicht; ihre Eingabe ist der Zustand der Umgebung mit der Dimension
state_size
. - Instanziere die Ausgabeschicht; sie liefert die Q-Werte für jede Aktion, mit der Dimension
action_size
. - Vervollständige die Methode
forward()
; verwende die Aktivierungsfunktiontorch.relu
für dieses Beispiel.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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)