强化学习体验之小游戏 FlappyBird

在安装完TensorFlow之后(详见” Install TensorFlow in Ubuntu 16.04.1 LTS “), 就可以测试各种深度学习的算法了。

有了TensorFlow + GPU就可以测试强化学习自己玩小游戏Flappy Bird了。

Deep Learning Flappy Bird

有个来自台湾国立新竹清华的本科生叫Yen-Chen Lin, 他在Github上提交了一个基于强化学习的小游戏 DeepLearningFlappyBird ( https://github.com/yenchenlin/DeepLearningFlappyBird )

要跑起来有些安装要求:

  • Python 2.7 or 3
  • TensorFlow 0.7
  • pygame
  • OpenCV-Python

前面两项我们已经安装过了, 而pygame的安装也非常简单:

sudo apt-get install python-pygame

OpenCV-Python 的python包安装也比较简单:

sudo apt-get install python-opencv

但是OpenCV的安装稍微有点麻烦。

OpenCV的安装

因为前面我们给予Ubuntu 16.04.1 LTS版本, 应用GTX 1080安装了最新的CUDA 8.0 和cuDNN 5.1, 因此我们要求安装OpenCV的origin/master版本。

因为OpenCV的最新发布版 3.10 对CUDA 8.0的支持有BUG: opencv3.10 does not support cuda8.0rc? #6677 ( https://github.com/opencv/opencv/issues/6677 ).

1. 下载OpenCV 和 OpenCV Extra

git clone https://github.com/opencv/opencv.git

git clone https://github.com/opencv/opencv_contrib.git

2. 安装依赖包

sudo apt-get -y install build-essential cmake pkg-config

sudo apt-get -y install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev

sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

sudo apt-get -y install libxvidcore-dev libx264-dev

sudo apt-get -y install libgtk-3-dev

sudo apt-get -y install libatlas-base-dev gfortran

因为大部分安装包我们之前已经安装过了, 所以这个过程很快。

3. 配置opencv 源码

假设我们git clone的opencv和extra的包放在同一个目录下:

那么, 我们就可以配置了。

cd opencv

mkdir build

cd build

sudo -E cmake -D CMAKE_BUILD_TYPE=RELEASE \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D INSTALL_C_EXAMPLES=OFF \

-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ \

-D PYTHON_EXECUTABLE=/usr/bin/python \

-D BUILD_EXAMPLES=ON ../

这里需要注意的是, 你需要告知你使用的是那个python, 有时候你会安装多个python的:

对了这里编译用了是 sudo -E 因为其中要下载一个包, 写目录出错了, 索性直接加了权限。

4. 安装openCV

编译完成就可以安装了, 安装的时候需要告知CPU的个数, 如果不告知的话, 默认就使用1个CPU。

如何查看CPU的个数

lscpu

可以看到是 12 个 CPU(s), 因此就如下命令:

sudo make -j12

如果 4 个 CPU的话就是

sudo make -j4

最后直接安装

sudo make install

sudo ldconfig

sudo apt-get install python-opencv

这样OpenCV就安装成功了!

测试DeepLearningFlappyBird

下载并且测试:

git clone https://github.com/yenchenlin/DeepLearningFlappyBird.git

cd DeepLearningFlappyBird

python deep_q_network.py

需要注意的事,如果使用Pycharm里面运行, 需要告知CUDA的library目录。

LD_LIBRARY_PATH

"$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"

因为这个环境变量, 之前安装TensorFlow的时候已经设置了, 所以命令行不需要再设置了。

这样你就可以看到一个Flappy Bird在闯关了。

可以看到Q-Learning的一些参数了。

当然如果觉得想自己手工玩一下,也是可以的, 你下载并且运行Flappy Bird

git clone https://github.com/sourabhv/FlapPyBird.git

cd FlapPyBird

python flappy.py

然后你按空格就可以玩了, 反正我水平很差, 连续过不了3关!

学习 Q-Learning 和 Flappy Bird

可以根据 Stanford的学生Kevin Chen在 CS229 的 Machine Learning课程上的2015年project ” Deep Reinforcement Learning for Flappy Bird “

( http://cs229.stanford.edu/proj2015/362_report.pdf )

也可以根据Lin Yenchen (http://yclin.me/) 自己描述的, 这个小游戏的强化学习部分是来自 Akshay Srivatsan 的 ”Using Deep Q Networks to Learn Video Game Strategies“ https://github.com/asrivat1/DeepLearningVideoGames

小结, 基于之前的 ” Install TensorFlow in Ubuntu 16.04.1 LTS “ , 这里给出了OpenCV的安装, 以及一个强化学习小游戏 ”Flappy Bird“ 的安装测试。

参考:

http://cs229.stanford.edu/proj2015/362_report.pdf

https://github.com/yenchenlin/DeepLearningFlappyBird

本文分享自微信公众号 - AI2ML人工智能to机器学习(mloptimization)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-11-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏生信小驿站

可视化 坐标系统

ggplot2可以通过coord_flip()切换x和y轴。例如,如果你想要水平箱形图。 这对长标签也很有用:很难让它们在x轴上不重叠的情况下适合。

9720
来自专栏张善友的专栏

开源OCR引擎Tesseract

知名的开源OCR引擎Tesseract 3.0版本日前发布,可以在项目网站下载:http://code.google.com/p/tesseract-ocr, ...

1.5K100
来自专栏人工智能LeadAI

毫秒级检测!你见过带GPU加速的树莓派吗?

1.1K100
来自专栏嵌入式程序猿

运算放大器使用必须遵循的六条军规

运算放大器是作为最通用的模拟器件,广泛用于信号变换调理、ADC采样前端、电源电路等场合中。虽然运放外围电路简单,不过在使用过程中还是有很多需要注意的地方。 1...

37860
来自专栏xingoo, 一个梦想做发明家的程序员

Elasticsearch查询——布尔查询Bool Query

Elasticsearch在2.x版本的时候把filter查询给摘掉了,因此在query dsl里面已经找不到filter query了。其实es并没有完全抛...

25170
来自专栏CVPy

OpenCV检测篇(一):猫脸检测

OpenCV是时下最流行的基于C++的开源计算机视觉库,它功能丰富,函数众多,从最基本的读写图片,到简单的图像处理,再到更加高级的行人检测、人脸识别、文本识别等...

1.7K30
来自专栏从流域到海域

Ubuntu16.04使用Anaconda5搭建TensorFlow使用环境 图文详细教程

本文转载于:http://blog.csdn.net/solo95/article/details/78960389,即专栏作者本人的博客,保留所有版权,禁止转...

45250
来自专栏喔家ArchiSelf

7行Python的人脸识别

随着去年alphago 的震撼表现,AI 再次成为科技公司的宠儿。AI涉及的领域众多,图像识别中的人脸识别是其中一个有趣的分支。百度的BFR,Face++的开放...

55130
来自专栏AI科技大本营的专栏

不会用Photoshop抠图?Mask R-CNN助你一键“除”人

翻译 | 林椿眄 编辑 | 费棋 【AI科技大本营导读】:看过英剧《黑镜》吗?圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像的功能,可...

46870
来自专栏生信技能树

hpv病毒基因研究调研

2015年有一篇文献中提到了hpv的研究现状 As of May 30, 2015, 201 different HPV types had been comp...

36150

扫码关注云+社区

领取腾讯云代金券