翻译: AWS DeepRacer一步一步详细步骤的自定义航点更快地运行 自定义waypoints

Posted AI架构师易筋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻译: AWS DeepRacer一步一步详细步骤的自定义航点更快地运行 自定义waypoints相关的知识,希望对你有一定的参考价值。

登录进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.3. 命令:

cd deepracer-analysis/

1.4.命令运行jupyter lab。

python3 -m venv venv
source venv/bin/activate
pip install --upgrade -r requirements.txt
jupyter lab

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)

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)

参考

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

以上是关于翻译: AWS DeepRacer一步一步详细步骤的自定义航点更快地运行 自定义waypoints的主要内容,如果未能解决你的问题,请参考以下文章

delphi怎么样编写DLL文件和怎么样去加载我编写的DLL文件,请高手详细给我一步一步写步骤出来,有例子最好

教你使用StarUML一步一步画顺序图

翻译: 自动驾驶 一步一步解释基本的2D自行车模型

深度学习基础:一步一步讲解卷积神经网络

一步一步安装配置Ceph分布式存储集群

[1w6k 字详细讲解] 保姆级一步一步带你实现 Promise 的核心功能