ПочатиПочніть безкоштовно

Навчання алгоритму A2C

Час навчити наш Lunar Lander за допомогою алгоритму A2C! У вас уже є всі необхідні складові — тепер потрібно зібрати їх докупи.

Мережі актора й критика вже створені як actor і critic, а також їхні оптимізатори actor_optimizer та critic_optimizer.

Ваша функція REINFORCE select_action() і функція calculate_losses() з попередньої вправи також доступні для використання тут.

Ця вправа є частиною курсу

Глибоке навчання з підкріпленням у Python

Переглянути курс

Інструкції до вправи

  • Дозвольте актору обрати дію за заданого стану.
  • Обчисліть втрати і для актора, і для критика.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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)
Редагувати та запускати код