Aan de slagGa gratis aan de slag

DRL-trainingslus

Om de agent het milieu herhaaldelijk te laten ervaren, moet je een trainingslus opzetten.

Veel DRL-algoritmen delen deze kernstructuur:

  1. Lus over episodes
  2. Lus over stappen binnen elke episode
  3. Kies bij elke stap een actie, bereken het verlies en werk het netwerk bij

Je krijgt tijdelijke functies select_action() en calculate_loss() waarmee de code kan draaien. De Network en optimizer die in de vorige oefening zijn gedefinieerd, zijn ook voor je beschikbaar.

Deze oefening maakt deel uit van de cursus

Deep Reinforcement Learning in Python

Cursus bekijken

Oefeninstructies

  • Zorg ervoor dat de buitenste lus (over episodes) tien episodes draait.
  • Zorg ervoor dat de binnenste lus (over stappen) loopt totdat de episode is voltooid.
  • Voer in de env-omgeving de actie uit die door select_action() is gekozen.
  • Werk aan het eind van een iteratie van de binnenste lus de state bij voordat je aan de volgende stap begint.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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.")
Code bewerken en uitvoeren