Bắt đầu ngayBắt đầu miễn phí

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:

  1. Lặp qua các episode
  2. Lặp qua các bước trong mỗi episode
  3. Ở 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()calculate_loss() để mã có thể chạy. Networkoptimizer đượ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

Xem khóa học

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ường env.
  • Ở 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.")
Chỉnh sửa và Chạy Mã