Loop pelatihan DRL
Agar agen dapat berinteraksi dengan environment berulang kali, Anda perlu menyiapkan loop pelatihan.
Banyak algoritma DRL memiliki struktur inti yang sama:
- Loop melalui episode
- Loop melalui langkah di dalam tiap episode
- Pada setiap langkah, pilih aksi, hitung loss, dan perbarui jaringan
Anda disediakan fungsi placeholder select_action() dan calculate_loss() agar kode dapat berjalan. Network dan optimizer yang didefinisikan dari latihan sebelumnya juga tersedia untuk Anda.
Latihan ini adalah bagian dari kursus
Deep Reinforcement Learning dengan Python
Petunjuk latihan
- Pastikan loop luar (untuk episode) berjalan selama sepuluh episode.
- Pastikan loop dalam (untuk langkah) berjalan hingga episode selesai.
- Ambil aksi yang dipilih oleh
select_action()di environmentenv. - Di akhir tiap iterasi loop dalam, perbarui state sebelum memulai langkah berikutnya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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.")