开始使用免费开始使用

训练基础版 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)
编辑并运行代码