ComenzarEmpieza gratis

Entrenamiento del algoritmo A2C

¡Es hora de entrenar nuestro Lunar Lander utilizando el algoritmo A2C! Tienes todos los elementos básicos, ahora se trata de unirlos.

Las redes de actores y críticos se han instanciado como actory critic, al igual que sus optimizadores actor_optimizer y critic_optimizer.

Tu función REINFORCE select_action() y la función calculate_losses() del ejercicio anterior también están disponibles para que las utilices aquí.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Instrucciones del ejercicio

  • Deja que el actor seleccione la acción, dado el estado.
  • Calcula las pérdidas del actor y del crítico.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

for episode in range(10):
    state, info = env.reset()
    done = False
    episode_reward = 0
    step = 0
    while not done:
        step += 1
        if done:
            break
        # Select the action
        ____
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        episode_reward += reward
        # Calculate the losses
        ____, ____ = ____(
            critic, action_log_prob, 
            reward, state, next_state, done)        
        actor_optimizer.zero_grad()
        actor_loss.backward()
        actor_optimizer.step()
        critic_optimizer.zero_grad()
        critic_loss.backward()
        critic_optimizer.step()
        state = next_state
    describe_episode(episode, reward, episode_reward, step)
Editar y ejecutar código