Aan de slagGa gratis aan de slag

Een barebone DQN trainen

Tijd om een Barebone DQN-algoritme te trainen in de Lunar Lander-omgeving. Onthoud dat dit nog een kale versie is, dus de prestaties zullen niet geweldig zijn, maar later ga je dit verbeteren.

Zie het als de eerste stap om je Lunar Lander op de maan te laten landen!

De q_network-instantie die je eerder hebt gedefinieerd is voor je beschikbaar.

In alle oefeningen in deze cursus heb je in je Python-omgeving ook een functie describe_episode() om aan het einde van elke episode wat informatie te printen over hoe de agent het heeft gedaan.

Deze oefening maakt deel uit van de cursus

Deep Reinforcement Learning in Python

Cursus bekijken

Oefeninstructies

  • Selecteer de actie van de agent in de inner loop.
  • Bereken de loss.
  • Voer een gradientdescent-stap uit om de netwerkgewichten te updaten.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren