IniziaInizia gratis

Ciclo di training DRL

Per permettere all'agente di fare esperienza ripetutamente nell'ambiente, devi impostare un ciclo di training.

Molti algoritmi di DRL condividono questa struttura di base:

  1. Cicla sugli episodi
  2. All'interno di ogni episodio, cicla sugli step
  3. A ogni step, scegli un'azione, calcola la loss e aggiorna la rete

Ti vengono fornite funzioni segnaposto select_action() e calculate_loss() che consentono l'esecuzione del codice. Anche la Network e l'optimizer definiti nell'esercizio precedente sono a tua disposizione.

Questo esercizio fa parte del corso

Deep Reinforcement Learning in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Assicurati che il ciclo esterno (sugli episodi) venga eseguito per dieci episodi.
  • Assicurati che il ciclo interno (sugli step) continui fino al completamento dell'episodio.
  • Esegui nel contesto env l'azione selezionata da select_action().
  • Al termine di ogni iterazione del ciclo interno, aggiorna lo stato prima di iniziare lo step successivo.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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.")
Modifica ed esegui il codice