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
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)