Träna det grundläggande DQN-nätverket
Nu är det dags att träna ett grundläggande DQN-algoritm i Lunar Lander-miljön. Kom ihåg att det här fortfarande är en enkel algoritm, så prestandan kommer inte att vara särskilt imponerande – men du kommer att förbättra den längre fram.
Se det som det första steget mot att få din Lunar Lander att landa på månen!
Instansen q_network som du definierade tidigare finns tillgänglig.
Genomgående i kursens övningar medföljer även en describe_episode()-funktion i din Python-miljö, som skriver ut information om hur agenten presterat i slutet av varje episod.
Den här övningen är en del av kursen
Djup förstärkningsinlärning i Python
Övningsinstruktioner
- Välj agentens åtgärd i den inre loopen.
- Beräkna förlusten.
- Utför ett gradientnedstigningssteg för att uppdatera nätverksvikterna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)