เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สถาปัตยกรรมของ Policy Network

สร้างสถาปัตยกรรมของ Policy Network เพื่อนำไปใช้ฝึก policy gradient agent ในภายหลัง

Policy Network รับสถานะ (state) เป็น input และส่งออกค่าความน่าจะเป็นในปริภูมิของ action สำหรับสภาพแวดล้อม Lunar Lander ซึ่งมี 4 discrete action โมเดลจะต้องส่งออกค่าความน่าจะเป็นสำหรับแต่ละ action

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Deep Reinforcement Learning ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดขนาดของ output layer ของ Policy Network โดยใช้ชื่อตัวแปรแทนการระบุตัวเลขตรงๆ เพื่อให้โค้ดมีความยืดหยุ่น
  • ตรวจสอบให้แน่ใจว่า layer สุดท้ายส่งคืนค่าความน่าจะเป็น

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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)
แก้ไขและรันโค้ด