用Caffe基于DQN玩Atari游戏
2016-04-28 16:06
309 查看
前言
2013年DeepMind 在NIPS上发表Playing Atari with Deep Reinforcement Learning 一文,提出了DQN(Deep Q Network)算法,实现端到端学习玩Atari游戏,即只有像素输入,看着屏幕玩游戏。Deep Mind就凭借这个应用以6亿美元被Google收购。由于DQN的开源,在github上涌现了大量各种版本的DQN程序。这里实现一种用Caffe实现的版本,详细描述一下环境配置和运行过程。准备
dqn-in-the-caffeCaffe
ALE最新的是0.5.1版本,但是一直有问题,建议使用0.4.4版本,ALE安装教程和使用教程在安装包里面manual.pdf。
开始配置环境
ALE
安装SDL 按照manual.pdf$PATH/ale_0.4.4/ale_0_4$ cp makefile.unix makefile
打开SDL
USE_SDL := 1
$PATH/ale_0.4.4/ale_0_4$ make
Caffe
make allmake test
make runtest
make distribute
caffe的环境配置这里不做介绍
protoc src/caffe/proto/caffe.proto –cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto
PYTHONPATH=”/home/ajay/pylearn2:/home/ajay/pylearn2/pylearn2/scripts:/usr/local/caffe/python/caffe:$PYTHONPATH”
export PYTHONPATH
DQN
修改cmake配置option(CPU_ONLY "Use CPU only for Caffe" OFF) option(USE_CUDNN "Use cuDNN for Caffe" OFF) option(USE_SDL "Use SDL for ALE" ON) include_directories(your_path/caffe-dqn/include) include_directories(/usr/local/cuda-7.0/include) include_directories(your_path/ale_0.4.4/ale_0_4/src) link_directories(your_path/caffe-dqn/build/lib) link_directories(your_path/ale_0.4.4/ale_0_4)
mkdir build
cd build
cmake ..
make
如果成功会显示If everything works the last two lines will be
Linking CXX executable dqn
[100%] Built target dqn
接下来需要找一个游戏文件breakout.bin
将breakout.bin,dqn_solver.prototxt,dqn.prototxt放在build下
your_path/dqn-in-the-caffe-master/build$ ./dqn
如果用GPU就将其打开
option(CPU_ONLY “Use CPU only for Caffe” ON)
cmake ..
make
./dqn -gpu
训练好后测试
./dqn -evaluate -gui -repeat_games 100 -model snapshots/train_iter_2000000.caffemodel
运行结果
相关文章推荐
- 会思考的机器预言家
- 漫谈机器学习经典算法—增强学习与马尔科夫决策过程
- 数据挖掘系列笔记(2):机器学习的应用实例
- 基于DQN的Flappy Bird实验
- 增强学习、增量学习、迁移学习——概念性认知
- DQN
- 增强学习、增量学习、迁移学习——概念性认知
- double dqn report
- 学习笔记-增强学习
- <GPS> Learning Neural Network Policies with Guided Policy Search under Unknown Dynamics
- 机器学习方法篇(23)------增强学习入门
- 【增强学习】Sarsa
- 机器学习之Grid World的Deep SARSA算法解析
- 机器学习之Grid World的Q-Learning算法解析
- 机器学习之Grid World的SARSA算法解析
- 机器学习之Grid World的Monte Carlo算法解析
- 收集的一些量化投资 资料
- google deepMind DQN 源码解读(1)
- 如何使用ajax读取Json中的数据
- [转]ExtJS Grid 分页时保持选中的简单实现方法