Zacznij terazZacznij za darmo

Architektura sieci Q

Jesteś już prawie gotowy, aby wytrenować swojego pierwszego agenta głębokiego uczenia ze wzmocnieniem! Zanim przejdziesz do pierwszej pełnej pętli treningowej, potrzebujesz architektury sieci neuronowej, która będzie sterować decyzjami agenta i jego zdolnością do uczenia się.

Zmodyfikujesz ogólną architekturę zdefiniowaną w poprzednim ćwiczeniu. torch oraz torch.nn są już zaimportowane do ćwiczenia.

To ćwiczenie jest częścią kursu

Głębokie uczenie ze wzmocnieniem w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz pierwszą warstwę ukrytą; jej dane wejściowe to stan środowiska o wymiarze state_size.
  • Utwórz warstwę wyjściową; dostarcza ona wartości Q dla każdej akcji, o wymiarze action_size.
  • Uzupełnij metodę forward(); użyj funkcji aktywacji torch.relu.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

class QNetwork(nn.Module):
    def __init__(self, state_size, action_size):
        super(QNetwork, self).__init__()
        # Instantiate the first hidden layer
        self.fc1 = nn.Linear(____, ____)
        self.fc2 = nn.Linear(64, 64)
        # Instantiate the output layer
        self.fc3 = nn.Linear(____, ____)
    def forward(self, state):
        # Ensure the ReLU activation function is used
        x = ____(self.fc1(torch.tensor(state)))
        x = ____(self.fc2(x))
        return self.fc3(x)
Edytuj i uruchom kod