L'architettura della Q-Network
Sei quasi pronto per addestrare il tuo primo agente di Deep Reinforcement Learning! Prima di lanciarti nel primo ciclo di training completo, ti serve un'architettura di rete neurale che guidi le decisioni dell'agente e la sua capacità di apprendere.
Modificherai l'architettura generica che hai definito in un esercizio precedente.
torch e torch.nn sono già importati negli esercizi.
Questo esercizio fa parte del corso
Deep Reinforcement Learning in Python
Istruzioni dell'esercizio
- Istanzia il primo livello nascosto; il suo input sarà lo stato dell'ambiente, di dimensione
state_size. - Istanzia il livello di output; fornisce i Q-values per ogni azione, di dimensione
action_size. - Completa il metodo
forward(); per questo esempio usa la funzione di attivazionetorch.relu.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)