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

使用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(片段)比较慢,大概一个片段需要两个小时左右,可以看到车辆遇到边界后几乎不动,或者很缓慢的移动,之后速度会增加,大约到四百多片段的时候可以看到车辆能够通过两个弯了

你可能感兴趣的:(强化学习)