ComenzarEmpieza gratis

Red de críticos

Los métodos del Actor Crítico requieren dos redes neuronales muy diferentes.

La arquitectura de la red de actores es idéntica a la de la red de políticas que utilizaste para REINFORCE, por lo que puedes reutilizar la clase PolicyNetwork.

Sin embargo, la red de críticos es algo que no has implementado hasta ahora. El crítico pretende aproximar la función de valor de estado \(V(s_t)\), rather than the action value function \(Q(s_t, a_t)\) aproximada por Q-Networks.

Ahora pondrás en marcha el módulo de red Critic que utilizarás en A2C.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Instrucciones de ejercicio

  • Rellena la dimensión deseada para la segunda capa totalmente conectada, de modo que produzca un valor de estado.
  • Obtén el valor devuelto por el paso hacia delante a través de la red crítica.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

class Critic(nn.Module):
    def __init__(self, state_size):
        super(Critic, self).__init__()
        self.fc1 = nn.Linear(state_size, 64)
        # Fill in the desired dimensions
        self.fc2 = nn.Linear(____)

    def forward(self, state):
        x = torch.relu(self.fc1(torch.tensor(state)))
        # Calculate the output value
        value = ____
        return value

critic_network = Critic(8)
state_value = critic_network(torch.rand(8))
print('State value:', state_value)
Editar y ejecutar código