Bucla de antrenament DRL
Pentru ca agentul să interacționeze repetat cu mediul, trebuie să configurezi o buclă de antrenament.
Mulți algoritmi DRL au în comun această structură de bază:
- Iterează prin episoade
- Iterează prin pași în cadrul fiecărui episod
- La fiecare pas, alege o acțiune, calculează pierderea și actualizează rețeaua
Îți sunt puse la dispoziție funcțiile placeholder select_action() și calculate_loss(), care permit rularea codului. Network și optimizer definite în exercițiul anterior sunt, de asemenea, disponibile.
Acest exercițiu face parte din cursul
Deep Reinforcement Learning în Python
Instrucțiuni pentru exercițiu
- Asigură-te că bucla exterioară (peste episoade) rulează pentru zece episoade.
- Asigură-te că bucla interioară (peste pași) rulează până când episodul este finalizat.
- Execută acțiunea selectată de
select_action()în mediulenv. - La sfârșitul fiecărei iterații a buclei interioare, actualizează starea înainte de a începe următorul pas.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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.")