Q-nätverkets arkitektur
Nu är du nästan redo att träna din första agent för djup förstärkningsinlärning! Innan du kan köra din första fullständiga träningsloop behöver du en arkitektur för neurala nätverk som styr agentens beslut och inlärningsförmåga.
Du kommer att modifiera den generella arkitektur du definierade i en tidigare övning.
torch och torch.nn är redan importerade i dina övningar.
Den här övningen är en del av kursen
Djup förstärkningsinlärning i Python
Övningsinstruktioner
- Instansiera det första dolda lagret; dess indata är miljöns tillstånd med dimensionen
state_size. - Instansiera utdatalagret; det ger Q-värden för varje möjlig åtgärd med dimensionen
action_size. - Komplettera metoden
forward(); använd aktiveringsfunktionentorch.relui det här exemplet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)