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 do 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.relupara este exemplo.
Exercício interativo prático
Experimente este exercício completando 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)