Vòng lặp huấn luyện DRL
Để cho agent trải nghiệm môi trường lặp đi lặp lại, bạn cần thiết lập một vòng lặp huấn luyện.
Nhiều thuật toán DRL có chung cấu trúc lõi như sau:
- Lặp qua các episode
- Lặp qua các bước trong mỗi episode
- Ở mỗi bước, chọn một hành động, tính loss, và cập nhật mạng
Bạn được cung cấp các hàm khung select_action() và calculate_loss() để mã có thể chạy. Network và optimizer được định nghĩa từ bài trước cũng đã sẵn sàng cho bạn sử dụng.
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
- Đảm bảo vòng lặp ngoài (qua các episode) chạy trong mười episode.
- Đảm bảo vòng lặp trong (qua các bước) chạy cho đến khi episode kết thúc.
- Thực hiện hành động do
select_action()chọn trong môi trườngenv. - Ở cuối mỗi lần lặp của vòng trong, cập nhật state trước khi bắt đầu bước tiếp theo.
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.
env = gym.make("LunarLander-v2")
# Run ten episodes
for episode in ____:
state, info = env.reset()
done = False
# Run through steps until done
while ____:
action = select_action(network, state)
# Take the action
next_state, reward, terminated, truncated, _ = ____
done = terminated or truncated
loss = calculate_loss(network, state, action, next_state, reward, done)
optimizer.zero_grad()
loss.backward()
optimizer.step()
# Update the state
state = ____
print(f"Episode {episode} complete.")