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

Вибір дії в REINFORCE

Напишіть функцію REINFORCE select_action, яку ваш агент REINFORCE використовуватиме, щоб обирати дію на кожному кроці.

У DQN прямий прохід мережею повертав значення Q; у REINFORCE він повертає ймовірності дій, з яких безпосередньо можна вибрати дію випадковим чином.

Політичну мережу (policy network) і стан уже завантажено у ваше середовище.

torch.distributions.Categorical імпортовано як Categorical.

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

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

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

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

  • Отримайте ймовірності дій як тензор torch.
  • Отримайте обʼєкт розподілу torch, що відповідає цим ймовірностям дій.
  • Виберіть дію, згенерувавши вибірку з цього розподілу.

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

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

def select_action(policy_network, state):
  # Obtain the action probabilities
  action_probs = ____
  print('Action probabilities:', action_probs)
  # Instantiate the action distribution
  action_dist = Categorical(____)
  # Sample an action from the distribution
  action = ____
  log_prob = action_dist.log_prob(action)
  return action.item(), log_prob.reshape(1)

state = torch.rand(8)
action, log_prob = select_action(policy_network, state)
print('Sampled action index:', action)
print(f'Log probability of sampled action: {log_prob.item():.2f}')
Редагувати та запускати код