本篇内容主要讲解“Python如何实现自动驾驶训练模型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现自动驾驶训练模型”吧!gym是用于开发和比较强化学习算法的工具包,在python中安装gym库和其中子场景都较为简便。安装gym:安装自动驾驶模块,这里使用Edouard Leurent发布在github上的包highway-env:其中包含6个场景:高速公路——“highway-v0”汇入——“merge-v0”环岛——“roundabout-v0”泊车——“parking-v0”十字路口——“intersection-v0”赛车道——“racetrack-v0”安装好后即可在代码中进行实验(以高速公路场景为例):运行后会在模拟器中生成如下场景:绿色为ego vehicle env类有很多参数可以配置,具体可以参考原文档。(1免费云主机域名)statehighway-env包中没有定义传感器,车辆所有的state (observations) 都从底层代码读取,节省了许多前期的工作量。根据文档介绍,state (ovservations) 有三种输出方式:Kinematics,Grayscale Image和Occupancy grid。Kinematics输出V*F的矩阵,V代表需要观测的车辆数量(包括ego vehicle本身),F代表需要统计的特征数量。例:数据生成时会默认归一化,取值范围:[100, 100, 20, 20],也可以设置ego vehicle以外的车辆属性是地图的绝对坐标还是对ego vehicle的相对坐标。在定义环境时需要对特征的参数进行设定:Grayscale Image生成一张W*H的灰度图像,W代表图像宽度,H代表图像高度Occupancy grid生成一个WHF的三维矩阵,用W*H的表格表示ego vehicle周围的车辆情况,每个格子包含F个特征。(2) actionhighway-env包中的action分为连续和离散两种。连续型action可以直接定义throttle和steering angle的值,离散型包含5个meta actions:(3) rewardhighway-env包中除了泊车场景外都采用同一个reward function:这个function只能在其源码中更改,在外层只能调整权重。(泊车场景的reward function原文档里有,懒得打公式了……)DQN网络的结构和搭建过程已经在我另一篇文章中讨论过,所以这里不再详细解释。我采用第一种state表示方式——Kinematics进行示范。由于state数据量较小(5辆车*7个特征),可以不考虑使用CNN,直接把二维数据的size[5,7]转成[1,35]即可,模型的输入就是35,输出是离散action数量,共5个。各个部分都完成之后就可以组合在一起训练模型了,流程和用CARLA差不多,就不细说了。初始化环境(DQN的类加进去就行了):训练模型:我在代码中添加了一些画图的函数,在运行过程中就可以掌握一些关键的指标,每训练40次统计一次平均值。平均碰撞发生率:epoch平均时长(s):平均reward:可以看出平均碰撞发生率会随训练次数增多逐渐降低,每个epoch持续的时间会逐渐延长(如果发生碰撞epoch会立刻结束)到此,相信大家对“Python如何实现自动驾驶训练模型”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
这篇文章主要讲解了“vue实现组件通信的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue实现组件通信的方式有哪些”吧!一、props / $emit父组件通过props的方式向子组件传递数据,而通…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。