Treinamento do barebone DQN
É hora de treinar um algoritmo do Barebone DQN no ambiente do Lunar Lander. Lembre-se de que esse ainda é um algoritmo simples, portanto, o desempenho não será excelente, mas você poderá aprimorá-lo mais tarde.
Pense nisso como o primeiro passo para fazer com que seu Lunar Lander pouse na Lua!
A instância q_network
que você definiu anteriormente está disponível para você.
Ao longo dos exercícios deste curso, seu ambiente Python também vem com uma função describe_episode()
para imprimir algumas informações no final de cada episódio sobre como o agente se saiu.
Este exercício faz parte do curso
Aprendizado por reforço profundo em Python
Instruções de exercício
- Selecione a ação do agente no loop interno.
- Calcule a perda.
- Execute uma etapa de descida de gradiente para atualizar os pesos da rede.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
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)