ComenzarEmpieza gratis

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

Ver curso

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ón torch.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)
Editar y ejecutar código