2018-05-11-機器學習環境安裝-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D
layout: post
title: 2018-05-11-機器學習環境安裝-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D
key: 20180511
tags: 機器學習 cuda cudnn tensorflow gym
modify_date: 05-11
---
機器學習環境安裝-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D
說明:
- 本文發布於: gitee,github,博客園
- 轉載和引用請指明原作者和連接及出處.
正文:
- 說明:這裏記錄了如何在ubuntu最新環境安裝機器學習的主要環境的方法和嘗試過程。
機器學習環境安裝全家桶
ubuntu18.04環境實用經驗
- 1.ubuntu18.04切換默認的python方法:
- 鏈接: https://segmentfault.com/q/1010000003713912
命令:
# 如下命令用來定義2種python sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150 # 如下命令用來切換 sudo update-alternatives --config python
- 2.ubuntu18.04安裝擺渡雲盤客戶端(不是擺渡雲同步客戶端)
- 鏈接:https://blog.csdn.net/tao_627/article/details/45007637 (這個鏈接有bcloud3.9.1安裝包,是能找到的最新版本,已放入雲盤"我的程序\ubuntu\哦嗯"位置;bcloud其實都是社區和個人自己維護的!已測可用)
安裝指導:https://blog.csdn.net/qq_37163122/article/details/78169072
- 3.ssh登錄ubuntu18.04
原理:默認ubuntu系統安裝後有ssh,而沒有sshd,所以其他服務器要通過ssh鏈接ubuntu需要如下
```
安裝指導:https://jingyan.baidu.com/article/359911f5a5b74857fe0306c4.html
首先看看自己的Ubuntu是不是已經安裝或啟用了ssh服務,執行ps -e |grep ssh
如果只有ssh-agent 這個是ssh-client客戶端服務,如果沒有sshd,繼續如下安裝ssh-server
安裝sshd:
sudo apt install openssh-server手動操作開啟/關閉ssh服務相關命令:
sudo service ssh start #手動啟動服務
sudo service ssh stop #手動關閉服務
sudo service ssh status #查詢服務狀態
```- 4.install QQ
Best way is use ‘WEBQQ‘, it‘s an URL, you can make a URL link icon on ubuntu desktop!.
- 5.install chrome
- download chrome deb package and use ‘sudo dpkg -i google-chrome-stable_current_amd64.deb‘ to install.
DONOT DOUBLE CLICK ‘deb‘ file in dialog and it will NOT install chrome and final create a icon of it(it seems not install finished indeed!)!
- 6.安裝pycharm
- 先下載免費社區版本的pycharm,然後執行bin下面的pycharm.sh腳本就啟動了圖形界面(pycharm.sh)
其次參照如下鏈接,配置Project Interperter;因為一般有多個python,比如pycharm自帶,ananconda如果你安裝了,系統的python3或2如果你安裝了,我選系統python3作為解析其),你選了哪個,pycharm會自動探測其依賴庫的更新,一般ananconda好. https://www.cnblogs.com/fanmu/p/8010580.html
- 7.解決apt-get循環依賴而無法安裝lib庫的問題
- 問題:遇到ubuntu系統中使用apt-get來安裝某個lib庫,但是A依賴B,C;B依賴D;D依賴A,E,這樣循環依賴,沒法單獨安裝每個lib庫;
解決:其實只要你sudo apt-get install A,B,C,D,E //將循環依賴庫一並寫上就可!
- 8.解決UBUNTU18.04插入USB無線鼠標無效問題
- 其實就是在未插入電源的情況下,默認會關閉USB設備,插入了電源,無線USB鼠標就能用了;
- TODO:暫未找到如何設定ubuntu18.04的關閉電源模式下禁用USB設備比如鼠標的開關或配置;
TODO:暫未找到ubuntu18.04的調節鼠標大小的方法和命令;
ubuntu18.04環境安裝CUDA+CUDNN+TF
- 1.查看nvidia顯卡配置
# 查看N卡GPU的配置 nvidia-smi # 查看N卡的圖形界面配置 nvidia-settings # 命令:查看nvidia卡型號; $ lspci | grep -i nvidia # 返回內容: 01:00.0 VGA compatible controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)
- 2.安裝cuda的折騰過程
- 神貼/好帖: http://www.zhimengzhe.com/bianchengjiaocheng/qitabiancheng/415560.html
- 過程簡述:
- 首先嘗試記憶中GTX960M顯卡只能支持的最高CUDA6+CUDNN5的組合配置安裝;
- 官網查了硬件型號,匹配的就是CUDA6+CUDNN5,因為CUDNN是神經網絡NN加速庫,主要看cuda;
- 但很快發現tf官網說即將最低支持cuda8,這怎麽辦???
- 查帖子發現也有人在GTX960M上安裝CUDA8,所以猜測:只要N卡安裝上驅動driver,而driver版本關聯到CUDA,cuda關聯到cudnn,tf也關聯CUDA版本,大膽猜測是這個邏輯;
- 按照以上邏輯,貪心下載了CUDA9.1,越到了安裝問題,解決後發現TF不支持,慘;
- 找貼發現可以安裝多個CUDA版本,只要路徑配置得當就行了,不像WIN系統有個黑盒子註冊表!
- 查了TF的GITHUB管網的release裏面1.8.0等最新幾個release-note信息,並查關鍵字CUDA,發現只支持到CUDA9.0;於是下決心安裝它;
- NVIDIA官網不用註冊就能隨意下載CUDA(但CUDNN需要註冊下載),速度都很快,於是下載runfile(目前發現,我忘記安裝patch補丁,只安裝了CUDA9.0的主程序,目前也能用!)
- 按照上述神貼方法,考慮到ubuntu18.04已經將GTX960M的顯卡升級到最新的390的drvier驅動,而且神貼說只要driver版本接近(帖子說AAA.BB小版本BB可以不一樣),但我發現CUDA9.0只支持到387,和390很接近,大膽嘗試,居然安裝上去了.主要安裝CUDA9.0的時候不要第一步就安裝它自帶的才387的driver顯卡驅動,否則顯卡驅動的安裝將極其復雜!
- 順利安裝完CUDA9.0,按提示和神貼設定路徑,然後註冊NVIDA官網,下載配套CUDNN712,並同樣runfile安裝,並參考另外帖子(下面詳述)復制文件和做鏈接及path等;
- 最後pip3 install tensorflow-gpu
- 需要keras的就pip3 install tensorflow-gpu
3.安裝cuda9.1/CUDA9.0/CUDA較高版本(cuda安裝包提示最高支持ubuntu17.10,別管它,其實我18.04照樣安裝!沒事!)
A.執行cuda9.X的run安裝文件出現問題
Error: unsupported compiler: 7.3.0. Use --override to override this check.
sudo sh ./cuda_9.1.85_387.26_linux.run --override //添加這個參數來屏蔽這個報錯! 於是可以繼續安裝了! 看到如下結果,基本OK.
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.1
Samples: Installed in /home/ya/cuda9-samples
Please make sure that
- PATH includes /usr/local/cuda-9.1/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-9.1/lib64, or, add /usr/local/cuda-9.1/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.1/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.1/doc/pdf for detailed information on setting up CUDA.
WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.1 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver
Logfile is /tmp/cuda_install_13322.log
Signal caught, cleaning up
---------------------
B 設定配置(參照上面提示)
$ sudo vim /etc/profile
在打開的文件末尾,添加以下兩行。
64位系統:
$ export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
32位系統:
$ export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
C 安裝完畢CUDA9.x,還需安裝如下lib
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
D 最後reboot,並用如下命令測試,看是否安裝CUDA9.X正確
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
- 4.安裝cudnn7.1.2(配套CUDA9.X)
- 官網下載:https://developer.nvidia.com/rdp/cudnn-archive (需免費註冊nvidia會員)
釋放後做些拷貝和路徑設定就行,參考以上CUDA的神貼,較簡單.
- 5.安裝TF-CUDA-CUDNN經驗
- 首先,目前GPU做的最好的是N卡(NIVIDA顯卡),不僅硬件好,驅動,CUDA平臺,CUDNN神經網絡加速庫都好,遠超其他顯卡;目前其他顯卡無法加速神經網絡!!!
- 其次,你有幸買了N卡,且準備搞深度學習,最著名的開源框架TF(Tensorflow),Pytorch,以及高級庫keras等等,一般都支持CUDA/CUDNN,先選其一學習吧;
- 再則,有了N卡,比如我的GTX960M(遊戲本的,但是不打遊戲),關鍵是配套驅動driver要不斷升級,比如跟著ubuntu18.04,最新升級到了390.xx的版本;
- N卡的驅動driver版本AAA.XX(比如390.xx),它配套CUDA,也就是說CUDA庫會說明需要drvier升級到何版本,一般xx不同沒關系,AAA最好一樣;
- 筆者經驗:AAA相差小的沒關系,而且新的driver一般向下兼容,舊的AAA就必須升級了;(如果上N卡官網查你的硬件比如GTX960M,它自動匹配的CUDA很低,不要信!否則絕望!)
- CUDNN是配套cuda的版本的;
- TF也是配套cuda的版本的;
- 安裝依賴路徑: GTX960M-->DRIVER FOR UBUNTU18.04(390.XX) -->CUDA9.0(9.X)-->CUDNN7.1.2/TF1.8.0-->KERAS
- TF馬上最低支持cuda8.0了,請盡快升級driver,以便升級到cuda8/9/..,來使用配套的TF/CUDNN,老硬件N卡照樣用!
- 這裏僅僅是我這種硬件軟件配置的成功案例,供看管參考,不代表原理和其他軟硬件配置都能成功,還需嘗試!!!
- 另外,我CUDA的幾個patch忘記安裝了,估計是它修改兼容性和BUG的,目前不出其他問題,我就不安裝了,怕有問題;
ubuntu18.04環境安裝OpenAI的GYM的強化學習環境
- 1.安裝GYM環境
- 通常做法,用命令: pip3 install gym[all] //這裏假設ubuntu已經安裝升級了python3和pip3,且按照上述方法切換默認python為PY3而不是PY2;
問題:一般你會遇到結果提示,Box2D和atari-py安裝失敗,重復上述命令,再次安裝全部gym[all],就更清晰的看到只有此2模塊沒有安裝成功(和win10一致);
- 2.安裝swig
- 如上述2個模塊安裝失敗,發現一個錯誤是沒有swig,和win10一樣,到官網下載對應的swig版本,win10下是exe(能成功),ubuntu用命令(能成功);
- sudo apt-get install swig
swig鏈接:http://www.swig.org/download.html
- 3.安裝gym的Box2D-kengz的物理引擎
- gym是個全家桶,裏面包含了多種物理引擎Box2D等,遊戲環境Atari等,是個用於研發和調測強化學習RL的好環境;
- 先再次安裝,改個名字: pip3 install gym[Box2D] //單獨命令安裝Box2D,而不是all,也不是原來過時的Box2D-kengz
安裝成功後,如下測試:
測試Box2D物理引擎是通過激活如下的小遊戲CartPole:
用如下命令來測試Box2D是否安裝成功,如果失敗,只會出現白框,而沒有桿子!
python //進入python,最好是PY3
import gym //load gym庫,這裏不能有報錯
env = gym.make("CartPole-v0") //新建一個樹立桿子的遊戲環境
env.reset() //初始化
env.render() //渲染,此時會彈出dialog,裏面有桿子!就算OK了!
env.close() //關閉env環境,dialog不能被gui關閉,只能用本行命令關閉!
- 4.安裝gym的Atari-py的小遊戲強化環境集合
- 單獨安裝: pip3 install gym[atari-py] //報錯一樣,顯示可能cmake有問題(win10下就需要安裝MingGW等環境,最終沒時間弄下去)
- 安裝cmake: sudo apt-get install cmake //cmake是ubuntu操作系統lib庫,不是python庫,所以用apt而不是pip3來安裝;
- 然後再安裝atari-py: pip3 install gym[atari] //成功
- 如果報錯如下,請進入該報錯提示的目錄,需要額外手動生成缺漏的so文件,src源碼在atari該目錄,進入該目錄直接make就能生成!
- OSError: /home/ya/atari-py/atari_py/ale_interface/build/libale_c.so: cannot open shared object file: No such file or directory
- 請進入/home/youraccount/atari-py/atari_py/ale_interface/ //此時沒有build目錄和文件libale_c.so
- 在該目錄看到了makefile文件和src目錄,猜測是沒有編譯出so文件!
- 在該目錄直接運行命令make,它自動編譯同目錄的makefile編譯編輯腳本,於是so文件有了,再次測試!!!通過了!!!
- atari 安裝完成!!!!
測試:
python //進入python,最好是PY3
import gym //load gym庫,這裏不能有報錯
env = gym.make("SpaceInvaders-v0") //新建一個打飛機遊戲環境(這裏可能會報錯如下!!!)
env.reset() //初始化
env.render() //渲染,此時會彈出dialog,裏面有飛機!就算OK了!
env.close() //關閉env環境,dialog不能被gui關閉,只能用本行命令關閉!
- 5.運行RL強化學習的例子
- 強化學習RL很有趣,最近在學習,看了一些morvan的教程(github查找關鍵字"morvan"得到的第一個結果)
- 跑一個普通RL例子,雖然import裏面不需要純python的圖形庫tkinter,但是matplotlib著名py的畫圖庫需要,則要做如下安裝:
- 安裝tkinter: sudo apt install python3-tk //特別註意,不是 sudo apt install python-tk!!!
持續更新中...
END
2018-05-11-機器學習環境安裝-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D