ComenzarEmpieza gratis

Selección de acciones en REINFORCE

Escribe la función REINFORCE select_action, que utilizará tu agente REINFORCE para seleccionar una acción en cada paso.

En DQN, el paso hacia delante de la red devolvía valores Q; en REINFORCE, devuelve probabilidades de acción, a partir de las cuales se puede muestrear directamente una acción.

Se han cargado una red de políticas y un estado en tu entorno.

torch.distributions.Categorical se ha importado como Categorical.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Instrucciones del ejercicio

  • Obtén las probabilidades de acción como un tensor de antorcha.
  • Obtén la Distribución de la antorcha correspondiente a las probabilidades de acción.
  • Muestra una acción de la distribución.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

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}')
Editar y ejecutar código