Inizia subitoInizia gratis

Addestrare il DQN essenziale

È il momento di addestrare un algoritmo DQN "barebone" nell'ambiente Lunar Lander. Ricorda che è ancora un algoritmo basilare, quindi le prestazioni non saranno eccezionali: più avanti lo migliorerai.

Pensalo come il primo passo per far atterrare il tuo Lunar Lander sulla Luna!

L'istanza q_network che hai definito in precedenza è a tua disposizione.

In tutti gli esercizi di questo corso, il tuo ambiente Python include anche una funzione describe_episode() per stampare, alla fine di ogni episodio, alcune informazioni su come se l'è cavata l'agente.

Questo esercizio fa parte del corso

Deep Reinforcement Learning in Python

Visualizza corso

Istruzioni dell'esercizio

  • Seleziona l'azione dell'agente nel loop interno.
  • Calcola la loss.
  • Esegui un passo di discesa del gradiente per aggiornare i pesi della rete.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1     
        # Select the action
        action = ____(____, ____)
        next_state, reward, terminated, truncated, _ = (env.step(action))
        done = terminated or truncated
        # Calculate the loss
        loss = ____(q_network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        # Perform a gradient descent step
        loss.____
        optimizer.____
        state = next_state
        episode_reward += reward
    describe_episode(episode, reward, episode_reward, step)
Modifica ed esegui il codice