IniziaInizia 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 il 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 pratico interattivo

Prova a risolvere questo esercizio completando il 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