Formation de l'algorithme A2C
Il est temps d'entraîner notre Lunar Lander à l'aide de l'algorithme A2C. Vous disposez de tous les éléments nécessaires, il ne vous reste plus qu'à les assembler.
Les réseaux d'acteurs et de critiques ont été instanciés sous les noms actoret critic, tout comme leurs optimiseurs actor_optimizer et critic_optimizer.
La fonction REINFORCE select_action() et la fonction calculate_losses() de l'exercice précédent sont également disponibles ici.
Cet exercice fait partie du cours
Apprentissage par renforcement profond en Python
Instructions
- Permettez à l'acteur de sélectionner l'action en fonction de l'état.
- Veuillez calculer les pertes pour l'acteur et le critique.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
for episode in range(10):
state, info = env.reset()
done = False
episode_reward = 0
step = 0
while not done:
step += 1
if done:
break
# Select the action
____
next_state, reward, terminated, truncated, _ = env.step(action)
done = terminated or truncated
episode_reward += reward
# Calculate the losses
____, ____ = ____(
critic, action_log_prob,
reward, state, next_state, done)
actor_optimizer.zero_grad()
actor_loss.backward()
actor_optimizer.step()
critic_optimizer.zero_grad()
critic_loss.backward()
critic_optimizer.step()
state = next_state
describe_episode(episode, reward, episode_reward, step)