Архітектура Q-мережі
Ви майже готові навчати свого першого агента глибокого навчання з підкріпленням! Перш ніж перейти до повного циклу навчання, вам потрібна архітектура нейронної мережі, яка керуватиме рішеннями агента та його здатністю навчатися.
Ви зміните загальну архітектуру, яку визначили в попередній вправі.
torch і torch.nn імпортовано у ваших вправах.
Ця вправа є частиною курсу
Глибоке навчання з підкріпленням у Python
Інструкції до вправи
- Створіть перший прихований шар; його вхід — це стан середовища з розмірністю
state_size. - Створіть вихідний шар; він надає Q-значення для кожної дії з розмірністю
action_size. - Завершіть метод
forward(); у цьому прикладі використайте активаційну функціюtorch.relu.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)