当前位置:   article > 正文

翻译: AWS DeepRacer一步一步详细步骤的自定义航点更快地运行 自定义waypoints_deepracer动作空间

deepracer动作空间

登录进AWS Control 控制台

搜索“DeepRacer”并点击“AWS DeepRacer”
在这里插入图片描述
DeepRacer 控制台。

在这里插入图片描述

2019 年 DeepRacer 冠军杯”的航点图

在这里插入图片描述

1. 如何获得航点地图?

1.1 打开“终端”

在这里插入图片描述

1.2. 下载文件。输入命令:

git clone https://github.com/aws-deepracer-community/deepracer-analysis.git
  • 1

在这里插入图片描述

1.3. 命令:

cd deepracer-analysis/
  • 1

在这里插入图片描述

1.4.命令运行jupyter lab。

python3 -m venv venv
source venv/bin/activate
pip install --upgrade -r requirements.txt
jupyter lab
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

1.5. 点击“enter”运行最后一条命令。

在这里插入图片描述

2. Jupyter Lab将弹出。

在这里插入图片描述

2.1点击“Training_analysis.ipynb”

在这里插入图片描述

2.2.运行以下命令,使用“shift + enter”运行。

在这里插入图片描述

2.3.运行导入,使用“shift + enter”运行。

在这里插入图片描述

2.4. 列出曲目文件名。

在这里插入图片描述

2.5. 为 reinvent_base 加载航点地图。

在这里插入图片描述

2.6.您可以更改文件名以获得不同的航点地图。

在这里插入图片描述

3. 什么是航点waypoints?

航点代表轨道上的每个位置。它有 3 条线(L = 左、C = 中心和 R = 右),它们在地图上也有 0 - 154 号。不同的赛道会有不同的航点。
在这里插入图片描述
为航点构建新代理。

3.1 点击“你的车库”。

在这里插入图片描述

3.2. 点击“建造新车”。

在这里插入图片描述

3.3. 选择“相机”并点击“下一步”。

在这里插入图片描述

3.4.修改动作空间。(最大转向角=20,转向角粒度=3,最大速度=2m/s,速度粒度=2)

在这里插入图片描述

3.5. 点击“下一步”。

在这里插入图片描述

3.6. 命名 DeepRacer 并单击“完成”。

在这里插入图片描述

4. 使用航点奖励功能创建新模型。

4.1.点击“创建模型”。

在这里插入图片描述

4.2. 输入型号名称。

在这里插入图片描述

4.3.选择赛道:2019 DeepRacer冠军杯。

在这里插入图片描述

4.4.选择代理(与之前创建的相同)并单击“下一步”

在这里插入图片描述

4.5. 从 Github 复制奖励函数模板并粘贴到代码编辑器:

https://github.com/oscarYCL/deepracer-waypoints-workshop/blob/main/Template.py

def reward_function(params):
    
    center_variance = params["distance_from_center"] / params["track_width"]
    #racing line
    left_lane = [8,9,10,11,12,13,14,15,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,85,86,87,88,89,90,91,92,139,140,141,142,143,144,145,146,147,148,149,150,151]#Fill in the waypoints
    
    center_lane = [0,1,2,3,4,5,6,7,16,17,18,19,20,21,22,23,26,27,28,29,30,31,32,33,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,133,134,135,136,137,138,152,153,154]#Fill in the waypoints
    
    right_lane = [24,25,120,121,122,123,124,125,126,127,128,129,130,131,132]#Fill in the waypoints
    #Speed
    fast = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,141,142,143,144,145,146,147,148,149,150,151,152,153,154]#Fill in the waypoints, 2m/s
    slow = [83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,139,140]#Fill in the waypoints, 1m/s
    
    reward = 21

    if params["all_wheels_on_track"]:
        reward += 10
    else:
        reward -= 10

    if params["closest_waypoints"][1] in left_lane and params["is_left_of_center"]:
        reward += 10
    elif params["closest_waypoints"][1] in right_lane and not params["is_left_of_center"]:
        reward += 10
    elif params["closest_waypoints"][1] in center_lane and center_variance < 0.4:
        reward += 10
    else:
        reward -= 10
    if params["closest_waypoints"][1] in fast:
        if params["speed"] == 2 :
            reward += 10
        else:
            reward -= 10
    elif params["closest_waypoints"][1] in slow:
        if params["speed"] == 1 :
            reward += 10
        else:
            reward -= 10
        
    
    return float(reward)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

在这里插入图片描述

5. 使用航路点的赛车线。

5.1 画出赛车线。

在这里插入图片描述

5.2. 将航点填入奖励功能。

在这里插入图片描述

5.3. 填写 right_lane 的航路点。航路点:48-55。

在这里插入图片描述
在这里插入图片描述

5.4. 填充 center_lane 的航路点。航路点:56-75。

在这里插入图片描述

在这里插入图片描述

5.5. 填充 left_lane 的航路点。航路点:76-90。

在这里插入图片描述
在这里插入图片描述

5.6.填写奖励功能的所有路点(0-154)。例子:

在这里插入图片描述

6. 在赛车线之后,我们可以使用航路点来控制速度。

设置快=2m/s,慢=1m/s。
在这里插入图片描述
在这里插入图片描述

6.1.画出速度线。绿线 = 2 m/s,红线 = 1m/s

在这里插入图片描述

6.2. 将航路点填到“快”。航路点 48-75。

在这里插入图片描述
在这里插入图片描述

6.3. 将航路点填到“慢”。航路点 76-90。

在这里插入图片描述
在这里插入图片描述

6.4.填写奖励功能的所有路点(0-154)。例子:

在这里插入图片描述

6.5. 完成奖励功能,设置训练时间=120分钟

在这里插入图片描述
在这里插入图片描述

6.6. 点击“创建模型”开始训练。

在这里插入图片描述

6.2小时后,培训结束。

在这里插入图片描述

7. 评估您的模型

7.1 点击“开始评估”。

点击“开始评估”。
在这里插入图片描述

7.2.选择赛道“2019 DeepRacer冠军杯”

在这里插入图片描述

7.3. 选择试验次数来评估您的模型(3 次试验)。

在这里插入图片描述

7.4. 赛车类型选择“计时赛”。

在这里插入图片描述

7.5.点击“开始评估”

在这里插入图片描述

7.10分钟后,你会得到结果。

在这里插入图片描述
该模型有 2 个偏离轨道,因为它只完成了约 60%。我们需要更多的训练时间。

在这里插入图片描述

8.克隆你的模型

8.1 点击“克隆”

在这里插入图片描述

8.2. 输入型号名称。

在这里插入图片描述

8.3. 选择赛道。

在这里插入图片描述

8.4. 点击“下一步”。

在这里插入图片描述

8.5. 点击“下一步”。

在这里插入图片描述

8.6. 单击“超参数”。

在这里插入图片描述

8.7. 将“学习率”从 0.0003 更改为 0.00003。

在这里插入图片描述
超参数。

在这里插入图片描述

8.8. 点击“创建模型”,再训练 120 分钟。

在这里插入图片描述

9. 120分钟后,二次训练结束。

9.重新开始评估。

在这里插入图片描述
奖励图对比。模型训练完成率从 60% 提高到 86.05%。

在这里插入图片描述
评价结果对比。最佳时间从 16.315s 减少到 14.896s,所有单圈完成率 100%。
在这里插入图片描述

10. 下载评估视频。

10.1 点击“复制到 S3”

在这里插入图片描述

10.2. 单击“创建新存储桶”。

在这里插入图片描述

10.3. 勾选“视频”并点击“复制”。

在这里插入图片描述

10.4. 点击“复制”。

在这里插入图片描述

10.5. 成功并点击“查看”。

在这里插入图片描述

10.6. 点击“视频/”。

在这里插入图片描述

10.7. 点击“评估/”。

在这里插入图片描述

10.8、点击“评估-xxxxxxxxxxxxxxx-xxxxxxxxxxxx/”。

在这里插入图片描述

10.9. 点击“camera-45degree/”。

在这里插入图片描述

10.10. 勾选方框。

在这里插入图片描述

10.11. 点击“下载”。

在这里插入图片描述

10.12. 成功。

在这里插入图片描述

11. 2018 Reward function

github 地址:https://github.com/zgpeace/deepracer-waypoints-workshop/tree/main/Examples/re:Invent%202018

def reward_function(params):

    center_variance = params["distance_from_center"] / params["track_width"]
    #racing line
    left_lane = [23,24,50,51,52,53,61,62,63,64,65,66,67,68]#Fill in the waypoints
    
    center_lane = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,26,27,28,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,54,55,56,57,58,59,60,69,70]#Fill in the waypoints
    
    right_lane = [29,30,31,32,33,34]#Fill in the waypoints
    
    #Speed
    fast = [0,1,2,3,4,5,6,7,8,9,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70]#Fill in the waypoints, 2m/s
    slow = [10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]#Fill in the waypoints, 1m/s
    
    reward = 21

    if params["all_wheels_on_track"]:
        reward += 10
    else:
        reward -= 10

    if params["closest_waypoints"][1] in left_lane and params["is_left_of_center"]:
        reward += 10
    elif params["closest_waypoints"][1] in right_lane and not params["is_left_of_center"]:
        reward += 10
    elif params["closest_waypoints"][1] in center_lane and center_variance < 0.4:
        reward += 10
    else:
        reward -= 10
    if params["closest_waypoints"][1] in fast:
        if params["speed"] == 2 :
            reward += 10
        else:
            reward -= 10
    elif params["closest_waypoints"][1] in slow:
        if params["speed"] == 1 :
            reward += 10
        else:
            reward -= 10
        
    
    return float(reward)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

参考

https://www.linkedin.com/pulse/aws-deepracer-free-student-workshop-run-faster-using-your-cheuk-lam/?published=t
https://github.com/zgpeace/deepracer-waypoints-workshop

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/197072
推荐阅读
  

闽ICP备14008679号