Barebone DQN seleção de ações

A função select_action() permite que o agente selecione a ação com o valor Q mais alto em cada etapa.

A função recebe como argumento a rede Q e o estado atual, e retorna o índice da ação com o valor Q mais alto.

A rede Q é instanciada como q_network, e um estado aleatório foi carregado no seu ambiente com state = torch.rand(8) para que você possa trabalhar com dados de exemplo.

Este exercício faz parte do curso

Aprendizado por reforço profundo em Python

Ver Curso

Instruções de exercício

  • Calcule os valores Q correspondentes a cada ação no estado fornecido como argumento.
  • Obtenha o índice correspondente à ação com o valor Q mais alto.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

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)