La arquitectura Q-Network
¡Ya estás casi listo para entrenar a tu primer agente de Aprendizaje Profundo por Refuerzo! Antes de que puedas seguir adelante con tu primer bucle de entrenamiento completo, necesitas una arquitectura de red neuronal para dirigir las decisiones del agente y su capacidad de aprendizaje.
Modificarás la arquitectura genérica que definiste en un ejercicio anterior.
torch
y torch.nn
se importan a tus ejercicios.
Este ejercicio forma parte del curso
Aprendizaje profundo por refuerzo en Python
Instrucciones del ejercicio
- Instancia de la primera capa oculta; su entrada será el estado del entorno, con dimensión
state_size
. - Instancia de la capa de salida; proporciona los valores Q de cada acción, con dimensión
action_size
. - Completa el método
forward()
; utiliza la función de activacióntorch.relu
para este ejemplo.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
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)