A arquitetura da rede Q
Você está quase pronto para treinar seu primeiro agente de Deep Reinforcement Learning! Antes de prosseguir com o primeiro loop de treinamento completo, você precisa de uma arquitetura de rede neural para orientar as decisões do agente e sua capacidade de aprender.
Você modificará a arquitetura genérica que definiu em um exercício anterior.
torch
e torch.nn
são importados para seus exercícios.
Este exercício faz parte do curso
Aprendizado por reforço profundo em Python
Instruções de exercício
- Instancie a primeira camada oculta; sua entrada será o estado do ambiente, com dimensão
state_size
. - Instancie a camada de saída; ela fornece os valores Q para cada ação, com a dimensão
action_size
. - Conclua o método
forward()
; use a função de ativaçãotorch.relu
para este exemplo.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
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)