IniziaInizia gratis

Rete del Critic

I metodi Actor-Critic richiedono due reti neurali molto diverse.

L’architettura della rete dell’actor è identica a quella della policy network che hai usato in REINFORCE, quindi puoi riutilizzare la classe PolicyNetwork.

Tuttavia, la rete del critic è qualcosa che finora non hai implementato. Il critic mira ad approssimare la funzione valore di stato \(V(s_t)\), invece della funzione valore azione \(Q(s_t, a_t)\) approssimata dalle Q-Network.

Ora implementerai il modulo di rete Critic che userai in A2C.

Questo esercizio fa parte del corso

Deep Reinforcement Learning in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Inserisci la dimensione desiderata per il secondo layer fully connected in modo che produca un solo valore di stato.
  • Ottieni il valore restituito dal forward pass attraverso la rete del critic.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

class Critic(nn.Module):
    def __init__(self, state_size):
        super(Critic, self).__init__()
        self.fc1 = nn.Linear(state_size, 64)
        # Fill in the desired dimensions
        self.fc2 = nn.Linear(____)

    def forward(self, state):
        x = torch.relu(self.fc1(torch.tensor(state)))
        # Calculate the output value
        value = ____
        return value

critic_network = Critic(8)
state_value = critic_network(torch.rand(8))
print('State value:', state_value)
Modifica ed esegui il codice