使用Keras和DDPG玩赛车游戏(自动驾驶)

这篇博客介绍了如何利用Keras和DDPG算法在赛车游戏中实现自动驾驶。在Ubuntu16.04环境下,使用特定版本的Keras(1.1.0)和TensorFlow(0.11.0)避免版本不兼容问题。文章详细记录了安装和运行过程中遇到的问题及解决方案,包括keras版本过高、lambda函数和range函数的差异。在代码解释部分,提到了F1-F6用于调整视角,`train_indicator`设置为1可启动训练,训练过程起初较慢,但车辆逐渐学会驾驶技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用keras和DDPG玩赛车游戏

原文见链接
https://www.jianshu.com/p/a3432c0e1ef2
在整个安装运行过程中遇到了很多问题,所以记录下问题和解决方法。安装最好还是按照原文所述,遇到问题可以根据我的解决办法试试。
很多错误都是由于版本不一致导致的,环境版本如下:

  • Ubuntu16.04,python3
  • keras 1.1.0
  • tensorflow 0.11.0

原程序TensorFlow的版本是0.10.0,亲测0.11.0也可以使用,再高的版本就不行了,卸载高版本时务必将一些相关的辅助库一起卸载掉。

问题汇总

from keras.engine.training import collect_trainable_weights
ImportError: cannot import name collect_trainable_weights

这个应该是因为keras版本太高导致的,可以注释掉解决,但还有别的问题,建议安装匹配的版本

File "/root/gym_torcs/ActorNetwork.py", line 52, in create_actor_network
Steering = Dense(1,activation='tanh',init=lambda shape, name: normal(shape, scale=1e-4, name=name))(h1) 
TypeError: <lambda>() missing 1 required positional argument: 'name'

查了很久以为是lambda函数的问题,后来发现通过修改TensorFlow版本可以解决

xrange报错

python3 里range的实现方式也改为了2.x里xrange的实现方式,所以修改为range就可以

代码解释

  • 游戏中使用F1-F6调整视角,F2是主视角
  • 原文中运行snakeoil3_gym可以看到运行示例,这个文件里的drive_example应该是训练好的一个方法,可以直接看到车辆已经学会了怎么开车
  • ddpg文件中,想要进行训练,需要将train_indicator设置为1,0只是简单运行。
  • 原文件展训练片段数(轮数)为2000,每轮最多100000步,训练过程中,开始的几个episode(片段)比较慢,大概一个片段需要两个小时左右,可以看到车辆遇到边界后几乎不动,或者很缓慢的移动,之后速度会增加,大约到四百多片段的时候可以看到车辆能够通过两个弯了
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值