Kom igångKom igång gratis

Policynätverkets arkitektur

Bygg arkitekturen för ett policynätverk som du sedan kan använda för att träna din policy gradient-agent.

Policynätverket tar tillståendet som indata och returnerar en sannolikhet i åtgärdsrymden. I Lunar Lander-miljön arbetar du med fyra diskreta åtgärder, så nätverket ska returnera en sannolikhet för var och en av dessa åtgärder.

Den här övningen är en del av kursen

Djup förstärkningsinlärning i Python

Visa kurs

Övningsinstruktioner

  • Ange storleken på policynätverkets utdatalager – använd variabelnamnet i stället för det faktiska talet för att göra koden flexibel.
  • Se till att det sista lagret returnerar sannolikheter.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod