IniziaInizia gratis

L'architettura della rete di policy

Progetta l'architettura di una Policy Network che potrai usare in seguito per addestrare il tuo agente con policy gradient.

La rete di policy riceve lo stato in input e restituisce una distribuzione di probabilità nello spazio delle azioni. Nell'ambiente Lunar Lander, lavori con quattro azioni discrete, quindi vuoi che la rete restituisca una probabilità per ciascuna di queste azioni.

Questo esercizio fa parte del corso

Deep Reinforcement Learning in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Indica la dimensione del layer di output della rete di policy; per flessibilità, usa il nome della variabile invece del numero effettivo.
  • Assicurati che il layer finale restituisca probabilità.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)
Modifica ed esegui il codice