CommencezCommencez gratuitement

Boucle d'entraînement DRL

Pour permettre à l'agent d'explorer l'environnement à répétition, vous devez mettre en place une boucle d'entraînement.

Beaucoup d'algorithmes de DRL partagent cette structure de base :

  1. Boucler sur les épisodes
  2. Boucler sur les étapes à l'intérieur de chaque épisode
  3. À chaque étape, choisir une action, calculer la perte et mettre à jour le réseau

On vous fournit des fonctions provisoires select_action() et calculate_loss() pour que le code s'exécute. Le Network et l'optimizer définis dans l'exercice précédent sont aussi à votre disposition.

Cette activité fait partie du cours

Deep Reinforcement Learning en Python

Voir le cours

Instructions de l’exercice

  • Assurez-vous que la boucle externe (sur les épisodes) s'exécute pendant dix épisodes.
  • Assurez-vous que la boucle interne (sur les étapes) s'exécute jusqu'à la fin de l'épisode.
  • Effectuez l'action sélectionnée par select_action() dans l'environnement env.
  • À la fin de chaque itération de la boucle interne, mettez l'état à jour avant de commencer l'étape suivante.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

env = gym.make("LunarLander-v2")
# Run ten episodes
for episode in ____:
    state, info = env.reset()
    done = False    
    # Run through steps until done
    while ____:
        action = select_action(network, state)        
        # Take the action
        next_state, reward, terminated, truncated, _ = ____
        done = terminated or truncated        
        loss = calculate_loss(network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()        
        # Update the state
        state = ____
    print(f"Episode {episode} complete.")
Modifier et exécuter le code