НачатьНачать бесплатно

Выбор действия в базовом DQN

Функция select_action() позволяет агенту на каждом шаге выбирать действие с наибольшим Q-значением.

Функция принимает в качестве аргументов Q-сеть и текущее состояние, а возвращает индекс действия с наибольшим Q-значением.

Q-сеть создана как экземпляр q_network, а случайное состояние загружено в среду с помощью state = torch.rand(8) — это пример данных для работы.

Это упражнение является частью курса

Глубокое обучение с подкреплением на Python

Посмотреть курс

Инструкции к упражнению

  • Вычислите Q-значения для каждого действия в состоянии, переданном в качестве аргумента.
  • Получите индекс действия с наибольшим Q-значением.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код