ПочатиПочніть безкоштовно

Архітектура політики-мережі

Побудуйте архітектуру Policy Network, яку ви зможете використати пізніше для тренування вашого агента з градієнтом політики.

Політика-мережа приймає стан як вхід і повертає розподіл імовірностей у просторі дій. Для середовища Lunar Lander ви працюєте з чотирма дискретними діями, тож мережа має повертати імовірність для кожної з цих дій.

Ця вправа є частиною курсу

Глибоке навчання з підкріпленням у Python

Переглянути курс

Інструкції до вправи

  • Задайте розмір вихідного шару політики-мережі; для гнучкості використайте назву змінної, а не конкретне число.
  • Переконайтеся, що фінальний шар повертає імовірності.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

class PolicyNetwork(nn.Module):
  def __init__(self, state_size, action_size):
    super(PolicyNetwork, self).__init__()
    self.fc1 = nn.Linear(state_size, 64)
    self.fc2 = nn.Linear(64, 64)
    # Give the desired size for the output layer
    self.fc3 = nn.Linear(64, ____)

  def forward(self, state):
    x = torch.relu(self.fc1(torch.tensor(state)))
    x = torch.relu(self.fc2(x))
    # Obtain the action probabilities
    action_probs = ____(self.fc3(x), dim=-1)
    return action_probs
  
policy_network = PolicyNetwork(8, 4)
action_probs = policy_network(state)
print('Action probabilities:', action_probs)
Редагувати та запускати код