Kom igångKom igång gratis

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

Visa kurs

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