CommencerCommencer gratuitement

Formation de l'algorithme A2C

Il est temps d'entraîner notre Lunar Lander à l'aide de l'algorithme A2C. Vous disposez de tous les éléments nécessaires, il ne vous reste plus qu'à les assembler.

Les réseaux d'acteurs et de critiques ont été instanciés sous les noms actoret critic, tout comme leurs optimiseurs actor_optimizer et critic_optimizer.

La fonction REINFORCE select_action() et la fonction calculate_losses() de l'exercice précédent sont également disponibles ici.

Cet exercice fait partie du cours

Apprentissage par renforcement profond en Python

Afficher le cours

Instructions

  • Permettez à l'acteur de sélectionner l'action en fonction de l'état.
  • Veuillez calculer les pertes pour l'acteur et le critique.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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)
Modifier et exécuter le code