Barebone DQN selección de acciones

La función select_action() permite al agente seleccionar la acción con mayor valor Q en cada paso.

La función toma como argumento la red Q y el estado actual, y devuelve el índice de la acción con mayor valor Q.

La red Q está instanciada como q_network, y se ha cargado un estado aleatorio en tu entorno con state = torch.rand(8) para darte datos de ejemplo con los que trabajar.

Este ejercicio forma parte del curso

Aprendizaje profundo por refuerzo en Python

Ver curso

Instrucciones de ejercicio

  • Calcula los valores Q correspondientes a cada acción en el estado proporcionado como argumento.
  • Obtén el índice correspondiente a la acción con mayor valor Q.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

def select_action(q_network, state):
    # Calculate the Q-values
    q_values = ____
    print("Q-values:", [round(x, 2) for x in q_values.tolist()])
    # Obtain the action index with highest Q-value
    action = torch.____.item()
    print(f"Action selected: {action}, with q-value {q_values[action]:.2f}")
    return action

select_action(q_network, state)