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

Kiến trúc mạng policy

Xây dựng kiến trúc cho một Policy Network để bạn có thể dùng sau này khi huấn luyện agent theo phương pháp policy gradient.

Mạng policy nhận trạng thái làm đầu vào và xuất ra phân phối xác suất trên không gian hành động. Với môi trường Lunar Lander, bạn làm việc với bốn hành động rời rạc, nên bạn muốn mạng xuất ra một xác suất cho từng hành độ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

  • Chỉ định kích thước cho tầng đầu ra của mạng policy; để linh hoạt, hãy dùng tên biến thay vì con số cụ thể.
  • Đảm bảo tầng cuối cùng trả về các xác suất.

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.

class PolicyNetwork(nn.Module):
  def __init__(self, state_size, action_size):
    super(PolicyNetwork, self).__init__()
    self.fc1 = nn.Linear(state_size, 64)
    self.fc2 = nn.Linear(64, 64)
    # Give the desired size for the output layer
    self.fc3 = nn.Linear(64, ____)

  def forward(self, state):
    x = torch.relu(self.fc1(torch.tensor(state)))
    x = torch.relu(self.fc2(x))
    # Obtain the action probabilities
    action_probs = ____(self.fc3(x), dim=-1)
    return action_probs
  
policy_network = PolicyNetwork(8, 4)
action_probs = policy_network(state)
print('Action probabilities:', action_probs)
Chỉnh sửa và Chạy Mã