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
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)