DRL training loop
एजेंट को environment को बार-बार अनुभव करने देने के लिए, आपको एक training loop सेट करना होगा.
कई DRL एल्गोरिदम में यह मुख्य संरचना समान होती है:
- episodes पर लूप चलाएँ
- हर episode के अंदर steps पर लूप चलाएँ
- हर step पर कोई action चुनें, loss निकालें, और नेटवर्क अपडेट करें
आपको placeholder select_action() और calculate_loss() फंक्शन दिए गए हैं जिनसे कोड चल सके. पिछले अभ्यास में परिभाषित Network और optimizer भी उपलब्ध हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Deep Reinforcement Learning
अभ्यास निर्देश
- सुनिश्चित करें कि बाहरी लूप (episodes पर) दस episodes तक चले.
- सुनिश्चित करें कि अंदरूनी लूप (steps पर) episode के पूरा होने तक चलता रहे.
select_action()द्वारा चुना गया actionenvenvironment में लें.- अंदरूनी लूप की प्रत्येक iteration के अंत में, अगले step शुरू करने से पहले state अपडेट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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.")