1. 程式人生 > >2018-05-11-機器學習環境安裝-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D

2018-05-11-機器學習環境安裝-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D

ssh鏈接 返回 sta arch 打飛機 close select erp gef


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