開始使用免費開始

訓練 A2C 演算法

是時候用 A2C 演算法來訓練我們的 Lunar Lander 了!你已經具備所有組件,現在要把它們整合起來。

actor 與 critic 網路已經分別以 actor 和 critic 建立,對應的最佳化器為 actor_optimizer 與 critic_optimizer。

你在 REINFORCE 中的 select_action() 函式,以及上一個練習的 calculate_losses() 函式,也都可以在此使用。

本練習屬於課程

Python 的深度強化學習

檢視課程

練習說明

  • 給定狀態,讓 actor 選擇動作。
  • 計算 actor 與 critic 的損失。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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)
編輯並執行程式碼