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