Kom igångKom igång gratis

DRL-träningsloop

För att låta agenten uppleva miljön upprepade gånger behöver du sätta upp en träningsloop.

Många DRL-algoritmer delar samma grundstruktur:

  1. Loopa igenom episoder
  2. Loopa igenom steg inom varje episod
  3. Vid varje steg väljer du en åtgärd, beräknar förlusten och uppdaterar nätverket

Du får tillgång till platshållarfunktionerna select_action() och calculate_loss() som gör att koden kan köras. Network och optimizer från föregående övning är också tillgängliga.

Den här övningen är en del av kursen

Djup förstärkningsinlärning i Python

Visa kurs

Övningsinstruktioner

  • Se till att den yttre loopen (över episoder) kör i tio episoder.
  • Se till att den inre loopen (över steg) kör tills episoden är avslutad.
  • Utför den åtgärd som select_action() väljer i miljön env.
  • Uppdatera tillståndet i slutet av varje iteration i den inre loopen innan nästa steg påbörjas.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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.")
Redigera och kör kod