Začněte nyníZačněte zdarma

Síť kritika

Metody Actor-Critic vyžadují dvě velmi odlišné neuronové sítě.

Architektura sítě aktéra je totožná s architekturou sítě politiky, kterou jsi použil/a pro REINFORCE – třídu PolicyNetwork proto můžeš znovu využít.

Síť kritika je ale něco, co jsi zatím neimplementoval/a. Kritik se snaží aproximovat funkci hodnoty stavu \(V(s_t)\), nikoli funkci hodnoty akce \(Q(s_t, a_t)\), kterou aproximují Q-sítě.

Teď implementuješ modul Critic, který využiješ v A2C.

Toto cvičení je součástí kurzu

Deep Reinforcement Learning v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Doplň požadovanou dimenzi druhé plně propojené vrstvy tak, aby vracela jednu hodnotu stavu.
  • Získej hodnotu vrácenou dopředným průchodem sítí kritika.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód