

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 开始使用 AWS DeepRacer
<a name="deepracer-get-started"></a>

 要开始使用 AWS DeepRacer，让我们先来了解一下使用 AWS DeepRacer 控制台为代理配置适合您的自动驾驶要求的传感器、使用指定传感器的代理训练强化学习模型，以及评估经过训练的模型以确定模型的质量。训练完模型后，您就可以对其进行迭代并将其提交给比赛。

**Topics**
+ [训练您的第一个 AWS DeepRacer 模型](deepracer-get-started-training-model.md)
+ [在模拟中评估您的 AWS DeepRacer 模型](deepracer-get-started-test-in-simulator.md)

# 训练您的第一个 AWS DeepRacer 模型
<a name="deepracer-get-started-training-model"></a>

本演练演示了如何使用 AWS DeepRacer 控制台训练您的第一个模型。

## 使用 AWS DeepRacer 控制台训练强化学习模型
<a name="deepracer-get-started-train-model-proc"></a>

了解如何在 AWS DeepRacer 控制台中找到 “**创建模型**” 按钮，开始您的模型训练之旅。

**使用 AWS DeepRacer 控制台训练强化学习模型**

1. 如果这是您首次使用 AWS DeepRacer，请从服务登录页面中选择**创建模型**，或者在主导航窗格的**强化学习**标题下选择**开始**。

1. 在 **开始强化学习** 页面上的 **步骤 2: 创建模型和赛事** 下，选择 **创建模型**。

   或者，在主导航窗格的 **强化学习**标题下选择 **您的模型**。在 **Your models (您的模型)** 页面上，选择 **Create model (创建模型)**。

## 指定模型名称和环境
<a name="deepracer--create-model-step-one.title"></a>

为您的模型命名并学习如何选择适合您的仿真赛道。

**指定模型名称和环境**

1. 在 **创建模型** 页面中，在 **训练详情** 输入模型的名称。

1. 或者，添加训练作业描述。

1. 要了解有关其他选项的更多信息，请参阅[标签](deepracer-tagging.md)。

1. 在 “**环境模拟**” 下，选择一条轨道作为您的 AWS DeepRacer 代理的培训环境。**在 **赛道方向**下，选择 **顺时针**或逆时针**。然后选择**下一步**。

   第一次运行时，请选择具有简单形状和平滑转弯的赛道。在以后的迭代中，您可以选择更复杂的赛道来逐步改进模型。要为特定赛车活动训练模型，请选择最类似于活动赛道的赛道。

1. 在页面底部，选择 **下一步**。

## 选择比赛类型和训练算法
<a name="deepracer--create-model-step-two"></a>

AWS DeepRacer 控制台有三种竞赛类型和两种训练算法可供选择。了解哪些适合您的技能水平和训练目标。

**选择比赛类型和训练算法**

1. 在**创建模型**页面的**竞赛类型**下，选择**计时赛**、**避开物体**或 **H ead-to-bot**。

   对于您的首轮比赛，我们建议您选择 **计时赛**。有关针对此比赛类型优化代理传感器配置的指导，请参阅[为计时赛量身定制 AWS DeepRacer 培训](deepracer-choose-race-type.md#deepracer-get-started-training-simple-time-trial)。

1. （可选）后续运行时，可选择 **避障赛**，以绕过沿选定赛道放置在固定或随机位置的静止障碍物。有关更多信息，请参阅 [为避开物体竞赛量身定制 AWS DeepRacer 训练](deepracer-choose-race-type.md#deepracer-get-started-training-object-avoidance)。

   1. 选择 **固定位置**以在赛道的两条车道上用户指定的固定位置生成方框，或者选择 **随机位置**以生成在每次训练模拟开始时随机分布在两条车道上的物体。

   1. 接下来，为 **赛道上的物体数量**选择一个值。

   1.  如果选择 **固定位置**，则可以调整每个对象在赛道上的位置。对于 **车道放置**，请在内车道和外车道之间进行选择。默认情况下，物体在赛道上均匀分布。要更改物体起点和终点线之间的距离，请在 **起点和终点之间的位置 (%)字段中输入 7 到 90 之间距离的百分比**。

1. 或者，要想进行更雄心勃勃的跑步，可以选择**Head-to-bot 赛车**与最多四辆以恒定速度移动的机器人车辆竞争。要了解更多信息，请参阅[为 head-to-bot比赛量身定制 AWS DeepRacer 训练](deepracer-choose-race-type.md#deepracer-get-started-training-h2h-racing)。

   1. 在 **选择机器人车辆数量**下，选择您希望代理训练多少辆机器人车辆。

   1. 接下来，选择您希望机器人车辆在赛道上行驶的速度（以毫米/秒为单位）。

   1. 或者，选中 **启用车道变更**复选框，让机器人车辆能够每 1-5 秒随机更改一次车道。

1. 在**训练算法和超参数**下，选择 **柔性动作评价 (SAC)** 或 **近端策略优化 (PPO)**算法。在 AWS DeepRacer 控制台中，必须在持续的操作空间中训练 SAC 模型。PPO 模型可以在连续或离散的操作空间中训练。

1. 在 **训练算法和超参数**下，按原样使用默认超参数值。

   稍后，为了提高训练性能，请展开 **Hyperparameters (超参数)** 并按如下所示修改默认超参数值：

   1. 对于 **Gradient descent batch size (梯度下降批大小)**，选择[可用选项](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 对于 **Number of epochs (纪元数)**，设置[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 对于 **Learning rate (学习速率)**，设置[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 对于 **SAC alpha 值**（仅限 SAC 算法），设置[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 对于 **Entropy (熵)**，设置[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 对于**Discount factor (折扣系数)**，设置[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 对于 **Loss type (损耗类型)**，选择[可用选项](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   1. 对于 **Number of experience episodes between each policy-updating iteration (每次策略更新迭代之间的经验情节数)**，设置[有效值](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

   有关超级参数的更多信息，请参阅[系统性调整超级参数](deepracer-console-train-evaluate-models.md#deepracer-iteratively-adjust-hyperparameters)。

1. 选择 **下一步**。

## 定义操作空间
<a name="deepracer--create-model-specify-action-space"></a>

在 **定义操作空间**页面上，如果您选择使用 SAC 算法进行训练，则您的默认操作空间为连续动作空间。如果您选择使用 PPO 算法进行训练，请在 **连续操作空间**和 **离散操作空间**之间进行选择。要详细了解每个操作空间和算法如何塑造代理的训练体验，请参阅[AWS DeepRacer 行动空间和奖励功能](deepracer-how-it-works-action-space.md)。

### 定义连续操作空间（SAC 或 PPO 算法）
<a name="deepracer--create-model-specify-action-space"></a>

1. 在 **定义连续操作空间**下，选择 **左转向角度范围**和 **右转向角范围**。

   尝试为每个转向角度范围输入不同的角度，并观看范围变化的可视化，以在 **动态扇形图**上显示您的选择。  
![\[\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/deepracer-dynamic-sector-graph.png)

1. 在 **速度**下，输入代理的最小和最大速度（以毫米/秒为单位）。

   请注意您的更改是如何反映在 **动态扇形图**上的。

1. （可选）选择 **重置为默认值**以清除不需要的值。我们鼓励在图表上尝试不同的值来进行实验和学习。

1. 选择 **下一步**。

### 定义离散操作空间（仅限 PPO 算法）
<a name="deepracer--create-model-specify-action-space"></a>

1. 从下拉列表中选择 **转向角粒度**的值。

1. 为代理的 **最大转向角**选择一个介于 1-30 之间的度数值。

1. 从下拉列表的 **速度粒度**选择一个值。

1. 为代理的**最大速度**选择一个介于 0.1-4 之间的值（以毫米/秒为单位）。

1. 使用 **动作列表**中的默认动作设置，或者（可选）切换到 **高级配置**来微调您的设置。如果在调整值后选择 **上一步**或关闭 **高级配置**，则更改将丢失。  
![\[\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/deepracer-advanced-configuration-toggle.png)

   1. 在 **转向角**列中输入一个介于 -30 和 30 之间的度数值。

   1. 在 **速度**列中输入一个介于 0.1 到 4 之间（以毫米/秒为单位）的值，最多可执行九个动作。

   1. （可选）选择 **添加动作**以增加动作列表中的行数。  
![\[\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/deepracer-add-an-action.png)

   1. （可选）在行上选择 **X** 将其删除。

1. 选择 **下一步**。

## 选择一辆模拟赛车
<a name="deepracer-create-model-step-four"></a>

了解如何开始使用 。每月参加公开组比赛，赚取新的定制赛车、油漆喷涂和改装功能。

**选择模拟赛车**

1. 在 **选择车辆外壳和传感器配置**页面上，选择与您的比赛类型和动作空间兼容的外壳。如果您的车库里没有匹配的赛车，请前往主导航窗格上 **强化学习**标题下的 **您的车库**来创建一辆。

   对于**计时**赛训练，你只需要使用 The Origin **al DeepRacer** 的默认传感器配置和单镜头摄像头，但只要动作空间匹配，所有其他外壳和传感器配置都能正常工作。有关更多信息，请参阅 [为计时赛量身定制 AWS DeepRacer 培训](deepracer-choose-race-type.md#deepracer-get-started-training-simple-time-trial)。

   对于 **避开物体**训练，立体摄像机很有用，但也可以使用单个摄像头来避开固定位置的静止障碍物。LiDAR 传感器为可选件。请参阅[AWS DeepRacer 行动空间和奖励功能](deepracer-how-it-works-action-space.md)。

   对于 **H ead-to-bot** 训练，除了单台摄像机或立体摄像机外，激光雷达单元最适合在经过其他行驶车辆时检测和避开盲点。要了解更多信息，请参阅[为 head-to-bot比赛量身定制 AWS DeepRacer 训练](deepracer-choose-race-type.md#deepracer-get-started-training-h2h-racing)。

1. 选择 **下一步**。

## 自定义您的奖励功能
<a name="deepracer-create-model-step-five"></a>

奖励功能是强化学习的核心。学会用它来激励您的赛车（代理）在探索赛道（环境）时采取特定的行动。就像鼓励和劝阻宠物的某些行为一样，您可以使用这个工具来鼓励您的赛车尽快完成一圈，并阻止它驶出赛道或与物体碰撞。

**自定义您的奖励功能**

1. 在**Create model (创建模型)** 页面上的**Reward function (奖励函数)** 下，按原样使用第一个模型的默认奖励函数示例。  
![\[\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/deepracer-reward-function-example-editor.png)

   稍后，您可以通过选择 **Reward function examples (奖励函数示例)** 来选择另一个示例函数，然后选择 **Use code (使用代码)** 接受选定的奖励函数。

   有四个示例函数可供您用作开始。它们说明了如何紧贴赛道中心行驶（默认）、如何确保代理停留在赛道边界内，如何防止之字形行驶以及如何避免撞向静止障碍物或其他移动车辆。

   要了解有关奖励函数的更多信息，请参阅[AWS DeepRacer 奖励功能参考](deepracer-reward-function-reference.md)。

1. 在 **停止条件** 下，保留默认的 **最长时间** 值不变或设置终止训练作业的新值，以帮助防止长时间运行（以及可能的失控）的训练作业。

   在训练的早期阶段进行试验时，您应该从此参数的较小的值开始，然后逐渐延长训练的时间。

1. 在 “**自动提交到 AWS**” 下 DeepRacer，默认选**中训练完成后 DeepRacer 自动将此模型提交给 AWS 并有机会赢取奖品**。或者，您可以通过选择复选标记来选择不输入您的模型。

1. 在 **联赛要求**下，选择您的 **居住国家**，并通过选中复选框接受条款和条件。

1. 在 **创建模型** 页面上，选择 创建模型 以开始创建模型并预置训练作业实例。

1. 提交后，等待训练作业完成初始化，然后运行。

   初始化过程大约需要花费几分钟，之后作业状态会从 **正在初始化** 变为 **进行中**。

1. 观看 **Reward graph (奖励图)** 和 **Simulation video stream (模拟视频流)** 以了解训练作业的进度。您可以每隔一段时间选择 **Reward graph (奖励图)** 旁边的刷新按钮来刷新 **Reward graph (奖励图)**，直到训练作业完成。  
![\[\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/deepracer-training-in-progress.png)

训练作业在 AWS 云端运行，因此您无需保持 AWS DeepRacer 控制台的打开状态。您可以返回控制台，在作业进行中的任何时间点检查模型。

如果 **模拟视频流** 窗口或 **奖励图** 显示无响应，请刷新浏览器页面以更新训练进度。

# 在模拟中评估您的 AWS DeepRacer 模型
<a name="deepracer-get-started-test-in-simulator"></a>

 训练作业完成后，您应评估训练后的模型以评估其融合行为。评估方式是：在选定赛道上完成多项预赛，并根据训练后的模型推断出的可能操作让代理在赛道上移动。性能指标包括赛道完成百分比以及每个赛道从开始到结束或偏离赛道的时间。

要评估您的训练模型，您可以使用 AWS DeepRacer 控制台。为此，请按照本主题中的步骤操作。

**在 AWS DeepRacer 控制台中评估经过训练的模型**

1. 在 https://console.aws.amazon.com /deepracer 上打开 AWS DeepRacer 控制台。

1. 在主导航窗格中，选择 **Models (模型)**，然后从 **Models (模型)** 列表中选择刚才训练的模型以打开模型详细信息页面。

1.  选择**评估**选项卡。

1. 在 **评估详细信息** 中，选择 **开始评估**。  
![\[Evaluation details section showing training complete message and option to start evaluation.\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/evaluation_details_start.png)

   如果训练作业未完成，您可以在训练作业状态更改为 **Completed (已完成)** 或模型的状态更改为 **Ready (就绪)** 后开始评估。

   训练作业完成后，模型便已就绪。如果训练未完成，并且训练最终为失败状态，模型也可能处于 **Ready (就绪)** 状态。

1. 在 **评估模型** 页面的 **赛事类型** 下，输入您的评估的名称，然后选择您选择用于训练模型的赛车类型。

   为了进行评估，您可以选择与训练中使用的赛事类型不同的赛事类型。例如，您可以为 head-to-bot比赛训练模型，然后对其进行计时赛评估。一般来说，如果训练用赛事类型与评估用赛事类型不同，模型必须很好地推广运用。第一次运行时，您应该使用相同的赛事类型进行评估和训练。

1. 在 **评估模型** 页面上的 **评估条件** 下，选择运行的预赛项数，然后选择要在其上评估模型的赛道。  
![\[\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/evaluation_select_track.png)

   通常情况下，您希望选择与在[训练模型](deepracer-get-started-training-model.md#deepracer-get-started-train-model-proc)时所用赛道相同或相似的赛道。虽然您可以选择任何跑道来评估您的模型，但您只能期望在与训练所用赛道最相似的赛道上获得最佳成绩。

   要查看您的模型能否很好地推广运用，请选择与训练中使用的赛道不同的评估赛道。

1. 在 **Evaluate model (评估模型)** 页面的**Virtual Race Submission (模拟赛提交)**下，对于您的第一个模型，关闭 **Submit model after evaluation (评估后提交模型)** 选项。稍后，如果您想参加赛车活动，请将此选项保持开启状态。  
![\[Virtual race submission section with options for submitting a model for evaluation.\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/deepracer-get-started-evaluate-virtual-race-submit.png)

1. 在 **Evaluate model (评估模型)** 页面上，选择 **Start evaluation (开始评估)** 以开始创建和初始化评估作业。

   此初始化过程需要大约 3 分钟才能完成。

1. 随着评估的进展，每次计时赛的 **评估详细信息** 选项下会显示评估结果（包括计时赛时间和赛道完成率）。在 **Simulation video stream (模拟视频流)** 窗口中，您可以查看代理在所选赛道上的表现。

    您可以在评估作业完成之前停止评估作业。要停止评估作业，请选择**评估**卡右上角的**停止评估**，然后确认停止评估。

1. 评估作业完成后，在 **Evaluation results (评估结果)** 下检查所有计时赛的绩效指标。随附的模拟视频流不再可用。

   **评估选择器**中提供了模型评估的历史记录。要查看特定评估的详细信息，请从**评估选择器**列表中选择评估，然后从**评估选择器**卡的右上角选择**加载评估**。  
![\[\]](http://docs.aws.amazon.com/zh_cn/deepracer/latest/developerguide/images/evaluation_selector_complete.png)

   对于这项特定的评估工作，经过训练的模型以显著的偏离赛道时间惩罚完成试验。作为第一次运行，这并不罕见。可能的原因包括训练没有融合，训练需要更长时间，需要扩大操作空间以便为代理提供更多的反应空间，或者需要更新奖励函数以处理不同的环境。

    在这种情况下，您可以通过克隆之前训练的模型、更改奖励函数、调整超参数，然后重复该过程，直到总奖励融合并且改进了性能指标，以此来改进模型。有关如何改进训练的更多信息，请参阅[训练和评估 AWS DeepRacer 模型](create-deepracer-project.md)。

 要将经过全面训练的模型传输到您的 AWS DeepRacer 设备以便在物理环境中驾驶，您需要下载模型工件。为此，请在模型的详细信息页面上选择 **Download model (下载模型)**。如果您的 AWS DeepRacer 物理设备不支持新的传感器，并且您的模型已使用新的传感器类型进行训练，那么当您在真实环境中在 AWS DeepRacer 设备上使用该模型时，您将收到一条错误消息。有关使用物理设备测试 AWS DeepRacer 模型的更多信息，请参阅[操作您的 AWS DeepRacer 车辆](operate-deepracer-vehicle.md)。

在与 AWS DeepRacer 联赛赛事或 AWS DeepRacer 社区竞赛中指定的赛道相同或相似的赛道上训练模型后，您可以在 AWS DeepRacer 控制台中将模型提交给虚拟竞赛。要执行此操作，请在主导航窗格中选择 **AWS 虚拟巡回赛** 或 **社区赛**。有关更多信息，请参阅 [参加 AWS DeepRacer 竞赛](deepracer-racing-series.md)。



要训练模型进行避障或 head-to-bot赛车训练，可能需要在模型和物理设备中添加新的传感器。有关更多信息，请参阅 [了解赛车类型并启用 AWS 支持的传感器 DeepRacer](deepracer-choose-race-type.md)。