训练基础版 DQN
现在该在 Lunar Lander 环境中训练一个基础版(Barebone)DQN 算法了。请注意这仍是一个最简算法,所以性能不会很理想,但您会在后续逐步改进。
可以把它看作让您的 Lunar Lander 成功登月的第一步!
您先前定义的 q_network 实例已可直接使用。
在本课程的练习中,您的 Python 环境还提供了一个 describe_episode() 函数,用于在每个回合结束时打印一些信息,帮助您了解智能体的表现。
本练习是课程的一部分
Python 中的深度强化学习
练习说明
- 在内层循环中选择智能体的动作。
- 计算损失。
- 执行一次梯度下降步骤以更新网络权重。
交互式实操练习
通过完成这段示例代码来试试这个练习。
for episode in range(10):
state, info = env.reset()
done = False
step = 0
episode_reward = 0
while not done:
step += 1
# Select the action
action = ____(____, ____)
next_state, reward, terminated, truncated, _ = (env.step(action))
done = terminated or truncated
# Calculate the loss
loss = ____(q_network, state, action, next_state, reward, done)
optimizer.zero_grad()
# Perform a gradient descent step
loss.____
optimizer.____
state = next_state
episode_reward += reward
describe_episode(episode, reward, episode_reward, step)