DQN實戰篇1 從零開始安裝Ubuntu, Cuda, Cudnn, Tensorflow, OpenAI Gym

1 前言

關注深度增強學習的知友們,大家好!之前我們專欄發布了 DQN從入門到放棄系列文章,從理論上為大家詳細分析DQN的演算法原理,至該系列文章第五篇,已經把DQN的整個演算法的來龍去脈分析清楚了。首先感謝大家的關注與支持,特別是你們的讚賞,給我們帶來了很大的鼓舞和前進的動力!接下來DQN從入門到放棄系列還會繼續在理論上分析DQN演算法的改進及拓展,直到你放棄為止[呲牙]。但是以此同時,正所謂:

Talk is cheap, show me the code!

既然是一個演算法,而且是一個牛逼的演算法,不實現實現怎麼行呢?

因此,我決定推出DQN實戰篇,算作DQN從入門到放棄系列的番外篇,從編程的角度來分享DQN的實現細節,大家也可以親自上手,體會一下實現演算法的快感!

工欲善其事,必先利其器!

既然是深度學習的範疇,沒有一台還不錯的電腦,怎麼來跑程序呢?因此,大家真正上手,很有必要配置一台還不錯的機器,至少支持GPU吧!所以,在這一篇文章中,我們來說說為了上手DQN及以後的一系列深度增強學習(Deep Reinforcement Learning)的演算法,我們如何搭建一個不錯的開發平台!

2 用於深度學習研究的主機配置

如果各位在研究深度學習並且實驗室或者公司已經給你們配置了K80這樣的頂級顯卡,那麼這部分就不用看了!

如果你是一個深度學習,特別是深度增強學習的愛好者,之前沒有好一點的主機,那麼確實是需要攢一台還可以的機器。最關鍵就是要支持GPU,支持CUDA。如果跑大一點的數據集,沒有GPU加速會讓你極其痛苦!

以我目前自己用的電腦為例,其配置如下:

用的GTX 970,1664個cuda核心,4g顯存。這樣的配置配起來大概7000多可以拿下。

目前Nvidia推出了GTX 1070,貴不了多少,1920個cuda核心,8g顯存。以目前的行情,8000內拿下也沒問題。

如果你預算低的話,那就是主要把顯卡配置調低羅。如果高的話,那你隨意吧!GTX 1080或者GTX Titan X都可以考慮啦!這裡好多顯卡自己選!geforce.com/hardware/de

還有另外一種選擇就是使用Amazon的雲服務。不過我還是建議使用本地做小規模測試,畢竟方便,然後有需求再考慮使用雲服務。

有了機器接下來就是安裝系統了!這其實是一件非常麻煩的事情!這也是本文的主題!從零開始安裝Ubuntu, Cuda, Cudnn, Tensorflow, OpenAI Gym!

我們將使用Tensorflow作為DQN演算法實現的工具,使用OpenAI Gym作為DQN演算法的測試平台!然後全程使用Python編程!

就目前來看,Tensorflow是最好的深度學習開源框架了!個人觀點是沒有之一,而且Tensorflow大有一統深度學習框架天下的趨勢!OpenAI Gym必然是增強學習最佳的測試平台!

接下來我們將一步一步介紹以下安裝:

  • Ubuntu14.04.3
  • CUDA 7.5
  • cudnn 4.0
  • tensorflow 0.9
  • OpenAI Gym

所需設備:

  • 一台帶有Nvidia GPU的電腦
  • 一個4g以上U盤
  • 有一台安裝windows的電腦,安裝UltraISO

3 一步一步搭建開發環境

Step 1:安裝Ubuntu

Step 1.1:準備安裝U盤

首先到官網下載Ubuntu的鏡像,我使用的是Ubuntu 14.04.3的ISO。

然後使用UltraISO來將鏡像刻錄到U盤中。

Step 1.1.1:啟動UltraISO,打開iso鏡像

Step 1.1.2:在菜單欄中點擊啟動選擇寫入硬碟鏡像

Step 1.1.3:格式化U盤,選擇usb-HDD+,刻錄完成後點擊便捷啟動寫入syslinux引導

經過以上幾步,安裝U盤準備完畢

Step 1.2 Ubuntu安裝

Step 1.2.1 啟動電腦,進入BIOS選擇啟動項到U盤。

Step 1.2.2 選擇Install Ubuntu進入安裝

Step 1.2.3 一路continue到選擇Erase disk and install Ubuntu,這裡我使用完全重新安裝,然後點擊Install

Step 1.2.4 中間需要設置用戶名密碼等信息。正常幾分鐘就可以安裝完畢。重啟進入系統

Step 2:安裝cuda

這裡我使用cuda7.5的deb進行安裝。

之前我嘗試過使用.run文件進行安裝。但是常常安裝完成之後重啟出現一直在登陸界面的情況。網上有很多這方面的問題,但能真正解決辦法的很難找到。因此這裡採用.deb安裝。需要注意的是,可以跳過單獨安裝Nvidia的顯卡驅動而直接安裝cuda,因為cuda裡面自帶了顯卡驅動,會自動安裝

Step 2.1 到Nvidia官網下載cuda的deb安裝文件

Step 2.2 關閉與Nvidia內核不兼容的nouveau

這裡參考caffe安裝教程:https://github.com/BVLC/caffe/wiki/Install-Caffe-on-EC2-from-scratch-(Ubuntu,-CUDA-7,-cuDNN)

打開Terminal終端(Ctrl+Alt+T)

sudo edit /etc/modprobe.d/blacklist-nouveau.conf

在文件中寫入:

blacklist nouveaublacklist lbm-nouveauoptions nouveau modeset=0alias nouveau offalias lbm-nouveau off

在terminal中執行

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.confsudo update-initramfs -usudo reboot

(貌似並沒有執行conf文件,但關掉了nouveau,如果沒有關掉nouveau,會導致安裝cuda之後重啟就進入不了系統,出現 ACPI PCC probe failed的錯誤)

重啟開始安裝cuda

Step 2.3 安裝build-essential

sudo apt-get updatesudo apt-get install build-essential

Step 2.4 安裝cuda

進入到cuda .deb安裝位置

sudo dpkg -i cuda-repo-ubuntu1404_local_7.5-18_amd64.debsudo apt-get updatesudo apt-get install cuda

安裝完畢之後,打開bashrc文件,將cuda路徑寫入:

gedit ~/.bashrc

在basic文件中寫入:

export PATH=$PATH:/usr/local/cuda/binexport LD_LIBRARY_PATH=:/usr/local/cuda/lib64

Step 2.5 驗證安裝

cd /usr/local/cuda/samples/1_Utilities/deviceQuerysudo makesudo ./deviceQuery

運行測試代碼,如果現在找到GPU則成功

Step 3 安裝cudnn

這部分比較簡單,首先要註冊Nvidia的開發賬號,然後才能下載cudnn。

下載下來後:

tar -zxf cudnn-7.0-linux-x64-v4.0-prod.tgzcd cudasudo cp lib64/* /usr/local/cuda/lib64/sudo cp include/cudnn.h /usr/local/cuda/include/

Step 4 更新一下系統

sudo apt-get update && sudo apt-get upgradesudo apt-get install linux-sourcesudo apt-get install linux-headers-`uname -r`

其中linux-source在前面參考教程中有安裝,因此也一併安裝,不安裝大概也可以!

Step 5: 安裝tensorflow

sudo apt-get install python-pip python-dev# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7 # Requires CUDA toolkit 7.5 and CuDNN v4. For other versions, see "Install from sources" below.export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl# Python 2sudo pip install --upgrade $TF_BINARY_URL

測試tensorflow:

$ python...>>> import tensorflow as tf>>> hello = tf.constant("Hello, TensorFlow!")>>> sess = tf.Session()>>> print(sess.run(hello))Hello, TensorFlow!>>> a = tf.constant(10)>>> b = tf.constant(32)>>> print(sess.run(a + b))42>>>

Step 6:安裝OpenAI Gym

git clone https://github.com/openai/gym cd gympip install -e . # minimal installpip install -e .[all] # all install

測試:

import gymenv = gym.make("CartPole-v0")env.reset()for _ in range(1000): env.render() env.step(env.action_space.sample()) # take a random action

4 小結

經過上面的安裝,我們就搭建好了測試DQN所需的基本環境了!對於寫代碼,我推薦Sublime Text!好啦!本篇就到這裡了!在下一篇重磅文章中,我將介紹如何用150行代碼搞定DQN!敬請期待!

引用:

[1] tensorflow.org

[2] nvidia.org

[3] ubuntu.org

[4] gym.openai.org

本文為原創文章,未經作者允許不得轉載!

推薦閱讀:

大家來預測一下吳恩達三個新項目之一deeplearning.ai之後,接下來的兩個項目將會是什麼項目?
錯過了這次影響全行業的語音智能峰會?這篇文章或許還能搶救一下 | WARE 2017
谷歌人工智慧唇讀術完虐人類,僅憑5千小時電視節目!人類古老的技藝再次淪陷
TensorFlow 官方文檔譯者招募
保姆機器人被入侵變殺人機器?網路安全成共享經濟後的大風口!

TAG:深度学习DeepLearning | 人工智能 | TensorFlow |