Začněte nyníZačněte zdarma

DQN s experience replay

Teď do trénování agenta pomocí Deep Q Network přidáš Experience Replay. Použiješ stejné prostředí Lunar Lander jako při stavbě základního DQN.

Místo toho, aby se síť při každém kroku učila jen z nejnovějšího přechodu, umožňuje buffer Experience Replay agentovi učit se z náhodné dávky nedávných zkušeností. To výrazně zlepšuje jeho schopnost porozumět prostředí.

Třídy QNetwork a ReplayBuffer z předchozích cvičení jsou k dispozici a byly inicializovány takto:

  • q_network = QNetwork(8, 4)
  • replay_buffer = ReplayBuffer(10000)

Funkce describe_episode() je opět k dispozici pro zobrazení metrik na konci každé epizody.

Toto cvičení je součástí kurzu

Deep Reinforcement Learning v Pythonu

Zobrazit kurz

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1
        q_values = q_network(state)        
        action = torch.argmax(q_values).item()
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        # Store the latest experience in the replay buffer
        replay_buffer.____        
        state = next_state
        episode_reward += reward    
    describe_episode(episode, reward, episode_reward, step)
Upravit a spustit kód