1. 程式人生 > >Ubuntu 16.04 下機器學習和人工智慧的環境安裝(較詳盡)

Ubuntu 16.04 下機器學習和人工智慧的環境安裝(較詳盡)

為什麼用Ubuntu?

        ubuntu是目前最為流行的linux的發行版,安裝簡單,視覺化,傻瓜化。目前的相關社群也比較完善,網上資料豐富,是新手上手linux環境下開發比較不錯的一個版本。

        ubuntu目前一般每隔兩年會發行一版LTS版本,即長週期支援版,往往在4月份釋出。普通版本一般支援18個月,而LTS能夠支援三年以上

        目前最新的版本是18.04LTS,但是目前還比較新,所以我還是用16.04LTS為主。

安裝系統

先到ubuntu的官網,也可以搜尋引擎中搜索,ubuntu歷史版本中找到ubuntu16.04,下載iso檔案(沒必要去踩別的坑)。使用軟碟通或者rufus(超級棒的一款免費軟體,被作者的免費精神簡直感動到哭)製作U盤啟動盤。

        設定電腦的BIOS,U盤啟動安裝。安裝過程中還是比較傻瓜式的。

        其中關於硬碟的分配問題,之前還會就掛載目錄的“/”(系統根目錄,主要用以安裝系統)、“/home”(使用者目錄,如果分配了這個掛載目錄,那使用者的儲存空間會被從系統目錄的空間中獨立出來)、“/boot”(儲存安裝過程和升級過程中的一些檔案)做一下去區分,一般根目錄30G左右,boot分200M-400M,其餘都給home——但現在我一般安裝就是分配一個統一的根目錄,格式選擇EXT4,然後剩下大概1-2倍於物理記憶體的SWAP空間作為系統的虛擬記憶體。

        然後下一步到底,完成安裝。

        一般最新的linux核心都會支援比較新的硬體裝置,所有安裝完成後網絡卡驅動之類就已經完成,所以還是比較簡單,但是如果是NVIDIA的顯示卡,還是需要再安裝一下的,詳見NVIDIA顯示卡驅動安裝部分。

刪除軟體

        Ubuntu安裝完後會發現系統有不少的預安裝軟體,有些十分雞肋,可以選擇刪除之。

        命令:   sudo apt-get remove XXX

        如:   sudo apt-get remove libreoffice-common  gnome-mines gnome-sudoku unity-webapps-common等等

安裝NVIDIA驅動

ubuntu預設安裝的是開源的顯示卡驅動,一般安裝完成後大概率是用的CPU中整合的顯示卡驅動來完成顯示的。

        我摸索的安裝方式有兩種,一種是上英偉達的官網下載你顯示卡對應的驅動檔案,選擇.run型別的檔案。一種是線上的PPA安裝方式。

        先第一種

        首先是要終止目前的X服務(桌面顯示服務): Ctrl+Alt+F1切換到tty1,輸入賬號密碼,然後終止服務:

               sudo service lightdm stop  (當然貌似   sudo systemctl stop lightdm 也可以有一樣功效),可以切換至F7看一下圖形介面是否終止。

        然後,需要禁用目前的開源nouveau的服務:

               sudo vim /etc/modprobe.d/blacklist.conf

               在最後新增:

       也可以建立blacklist-nouvean.conf檔案:sudo vim /etc/modprobe.d/blacklist-nouvean.conf

               新增:blacklist nouveau
                        options nouveau modeset=0

               再更新一下

                        sudo update-initramfs -u

                        reboot                      

                        lsmod | grep nouveau

        懶人安裝法:

Ctrl+alt+F1進入終端安裝顯示卡驅動,安裝驅動時,先關閉視覺化介面,sudo service lightdm stop,

將系統進行更新升級

sudo apt-get dist-upgrade #dist-upgrade相比較apt-get upgrade更為智慧,能夠根據庫的相互依賴性來決定安裝、刪除一些庫

sudo add-apt-repository ppa:graphics-drivers/ppa #嘗試了add-apt-repository和apt-add-repository都可以實現這個功能

sudo apt-get update

sudo apt-get install nvidia-384 #目前最新的為nvidia-390

輸入nvidia-smi,列印顯示卡資訊和驅動版本,ok

如果啟動時有問題則安裝上面的步驟將開源驅動列入黑名單

安裝cuda,cudnn

1.cuda

(本次安裝的版本為cuda8.0,cudnn6.0)

下載相應的cuda版本,將chmod 777 *.run,除了詢問是否安裝驅動選擇no,其他都是預設或yes

執行,後邊為響應的cuda版本

sudo ./cuda8.0*.run

Do you accept the previously read EULA? accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48? (y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit? (y)es/(n)o/(q)uit: y

Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: y Install the CUDA 8.0 Samples? (y)es/(n)o/(q)uit: y

安裝完畢後,進入 sudo gedit ~/.bashrc,宣告環境變數

export CUDA_HOME=/usr/local/cuda export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

設定環境變數和動態連結庫

sudo gedit /etc/profile

檔案末尾加入:

export PATH=/usr/local/cuda/bin:$PATH

儲存之後,建立連結檔案

sudo gedit /etc/ld.so.conf.d/cuda.conf

檔案中新增

/usr/local/cuda/lib64

執行

sudo ldconfig

儲存退出,執行source ~/.bashrc

測試安裝是否成功

cd /usr/local/cuda/samples/1_Utilities/deviceQuery ##可以使用tab補全,可能目錄有字母錯了

sudo make

./deviceQuery

列印cuda和顯示卡資訊

2.cudnn

下載cudnn,解壓檔案,

tar -xvf cudnn-8.0-linux-x64-v6.0.tgz

cd cuda/include資料夾,看到cudnn.h

sudo cp cudnn.h /usr/local/cuda/include/ # 複製標頭檔案

cd ../lib64

sudo cp lib* /usr/local/cuda/lib64 # 複製動態連結庫

cd /usr/local/cuda/lib64/

sudo rm -rf libcudnn.so libcudnn.so.6 # 刪除原有動態檔案

sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6 # 生成軟連線

sudo ln -s libcudnn.so.6 libcudnn.so

後邊的數字可以根據版本修改

3.安裝tensorflow-gpu

首先安裝pip

sudo apt-get install python-pip python-dev build-essential

sudo pip install --upgrade pip

sudo pip install --upgrade virtualenv

然後使用pip命令安裝tensorflow-gpu,直接安裝可以用

sudo pip install tensorflow-gpu==1.3

(也可以不加==1.3)直接安裝最新的,如果覺得比較慢可以使用清華的映象,執行

pip install \ -i https://pypi.tuta.tsinghua.edu.cn/simple/ \tensorflow-gpu==1.3

安裝缺少的庫,再安裝補上

開啟python,

import tensorflow

ok安裝完成

4.安裝pytorch

因為牆的原因,最好翻一下,或者直接下載安裝包,

連結: https://pan.baidu.com/s/1elmOk2 密碼: qrcf

sudo pip install 安裝包

sudo pip install torchvision

然後進入python命令介面,

import torch

import torchvision

不報錯,完成

因為框架會用到ctcloss,因此百度需要安裝百度的warp_loss,這個執行速度快,git專案程式碼,又因為要支援pytorch,可以取下面git

如果沒有安裝git,需要安裝,執行

sudo apt-get install git

cd warp-ctc

mkdir build

cd build

如果使用gpu運算,設定環境變數,執行

export CUDA_HOME=/usr/local/cuda

如果沒有cmake,sudo apt-get install cmake,進行安裝

cmake ../

make

切換到../pytorch_binding

安裝pytorch的一些相關包,

sudo pip install lmdb

sudo pip install cffi

sudo pip install mahotas

warp-ctc關聯到pytorch,需要執行一個setup.py指令碼,首先進入warp-ctc/pytoch_bedding,修改setup.py中的第一個enable_gpu=True,如果為True,則不需要修改,執行

sudo python setup.py install

完成後重新開啟一個控制檯視窗,執行python命令列,執行import warpctc_pytorch,不報錯,完成

安裝IDE

        我目前開發比較常用的是python,雖然linux有萬能的VIM,但畢竟vi的門檻還是比較高的,用不熟練的還是使用一些優秀的IDE(或者稱之為軟體)會比較合適一些,比如Pycharm,Anaconda等。

        在這我記一下Pycharm的使用。

        到pycharm的官網下載linux的安裝包,我們米少就下載社群版的就可以了。

        下載完成後,解壓下載的tgz檔案:

                如果涉及到許可權問題可以先改變檔案的許可權:sudo chmod 777 XXX  (XXX表示你需要改變許可權的檔案目錄及檔名)

                解壓壓縮包: tar -xvzf XXX -C ~ (XXX表示需解壓的檔名, -C的命令表示解壓到指定的路徑,此處示例中解壓到home,所以用~,當然解壓完成後你也可以去更改目錄的名字方便記憶)

                進入執行檔案所在的目錄,即  cd XXX/bin   (此處的XXX即上一步你所解壓的檔案目錄),可以ls一下,看到有一個pycharm.sh檔案

                執行    sh pycharm.sh

                這個時候我們的pycharm就開始執行了,以後執行pycharm就可以如此用 sh pycharm.sh執行。pycharm開啟後應該先到設定裡的預設設定新增python的環境,並將新增好的環境設定為你當前開發檔案的環境。

          當然現在有了更為方便的snap的包管理工具,就可以使用sudo snap install XXX 來安裝需要的軟體,pycharm的官網有專門的snap安裝的指令,當然也能到snap的官網找軟體,但是目前snap的速度是相當的不理想,如果有apt包還是安裝apt的比較快一些。遺憾的是,目前在國內使用snap安裝你必須忍受那難以想象的網路速度,且用且珍惜!