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

Тренувальний цикл DRL

Щоб агент багаторазово взаємодіяв із середовищем, потрібно налаштувати тренувальний цикл.

Багато алгоритмів DRL мають спільну базову структуру:

  1. Цикл за епізодами
  2. Внутрішній цикл за кроками в межах епізоду
  3. На кожному кроці оберіть дію, обчисліть втрату та оновіть мережу

Надано заготовки функцій select_action() і calculate_loss(), які дозволяють запустити код. Також доступні Network та optimizer, визначені у попередній вправі.

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

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

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

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

  • Переконайтеся, що зовнішній цикл (за епізодами) запускається на десять епізодів.
  • Переконайтеся, що внутрішній цикл (за кроками) триває, доки епізод не завершиться.
  • Виконайте дію, обрану select_action(), у середовищі env.
  • Наприкінці ітерації внутрішнього циклу оновіть стан перед початком наступного кроку.

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

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

env = gym.make("LunarLander-v2")
# Run ten episodes
for episode in ____:
    state, info = env.reset()
    done = False    
    # Run through steps until done
    while ____:
        action = select_action(network, state)        
        # Take the action
        next_state, reward, terminated, truncated, _ = ____
        done = terminated or truncated        
        loss = calculate_loss(network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()        
        # Update the state
        state = ____
    print(f"Episode {episode} complete.")
Редагувати та запускати код