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

Тренування базового DQN

Час натренувати базовий алгоритм DQN у середовищі Lunar Lander. Пам'ятайте: це все ще мінімальна версія алгоритму, тож результативність буде посередньою, але згодом ви її поліпшите.

Сприймайте це як перший крок до того, щоб змусити ваш Lunar Lander успішно сісти на Місяць!

Екземпляр q_network, який ви визначили раніше, уже доступний.

Упродовж вправ цього курсу у вашому середовищі Python також є функція describe_episode(), яка виводить підсумкову інформацію після кожного епізоду про те, як упорався агент.

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

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

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

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

  • Виберіть дію агента у внутрішньому циклі.
  • Обчисліть втрати (loss).
  • Виконайте крок градієнтного спуску, щоб оновити ваги мережі.

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

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

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1     
        # Select the action
        action = ____(____, ____)
        next_state, reward, terminated, truncated, _ = (env.step(action))
        done = terminated or truncated
        # Calculate the loss
        loss = ____(q_network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        # Perform a gradient descent step
        loss.____
        optimizer.____
        state = next_state
        episode_reward += reward
    describe_episode(episode, reward, episode_reward, step)
Редагувати та запускати код