Huấn luyện thuật toán A2C
Đến lúc huấn luyện Lunar Lander bằng thuật toán A2C! Bạn đã có đủ các mảnh ghép, giờ là lúc kết nối chúng lại.
Các mạng actor và critic đã được khởi tạo là actor và critic, cùng với các optimizer của chúng là actor_optimizer và critic_optimizer.
Hàm REINFORCE select_action() và hàm calculate_losses() từ bài trước cũng đã sẵn sàng để bạn sử dụng ở đây.
Bài tập này là một phần của khóa học
Deep Reinforcement Learning bằng Python
Hướng dẫn bài tập
- Cho actor chọn action dựa trên state.
- Tính loss cho cả actor và critic.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)