在Ubuntu 18.04安裝tensorflow 1.12 GPU版本

在以前的深度學習中,我是在MAC上跑CPU版本的tensorflow程序,當數據量變大後,tensorflow跑的很是慢,在內存不足狀況下,又容易形成系統崩潰,這個時候我以爲不該該浪費個人限制的微星遊戲本,便想着拿來跑深度學習的代碼。python

1. 配置信息

個人老電腦配置以下:linux

  • CPU i5-4210M
  • 16G內存
  • GPU GTX 950M 顯存2G
  • 128G SSD
  • Ubuntu 18.04

這個配置通常,可是爲了避免讓個人mac發光發熱,同時體驗下GPU給深度學習的加速效果(雖然可能加不了多少速度)以及不想讓老電腦荒廢的心,我最終決定仍是在上面安裝Ubuntu18.04跑TensorFlow了。git

2. 選擇安裝所需軟件

TensorFlow官網中提到了須要安裝如下軟件纔可使用TensorFlow的GPU版本: github

image

簡單來講就是咱們須要在Ubuntu18.04的環境下安裝如下軟件:sql

  1. NVIDIA的GPU驅動(nvidia drive-390)ubuntu

  2. CUDA 9.0(不要下載CUDA 10.0,由於TensorFlow 1.12.0目前只支持到CUDA 9.0)bash

  3. cuDNN v7.3.1 for CUDA 9.0 (選當前最新的)curl

至於CUDA和cuDNN是什麼自行谷歌,對應的下載頁面和地址以下:ionic

3. 安裝NVIDIA驅動並下降gcc版本

cuda的官網 docs.nvidia.com/cuda/cuda-i… 安裝說明中已經列出了檢查步驟。若是你的GPU在支持列表中,則咱們只須要作以下操做:

3.1 安裝GPU驅動程序。

Ubuntu在安裝後,是給了一個叫Nouveau默認內建的驅動程序。咱們須要安裝GPU針對性的驅動程序,有篇文章教怎麼在Ubuntu上安裝合適的驅動:linuxconfig.org/how-to-inst…

簡單來講,執行 ubuntu-drivers devices 命令獲得推薦的nvidia驅動程序,

而後執行 sudo apt-get install nvidia-driver-390 (根據提示的驅動程序而定)便可安裝完成。

注意安裝完成後須要重啓。

重啓完成後執行nvidia-smi,若是出現相似於下圖所示的信息則說明驅動安裝成功:

image

3.2 安裝gcc-4.8和g++4.8

sudo apt-get install gcc-4.8
ll /usr/bin |grep gcc #若存在高版本的gcc,則繼續
cd /usr/bin
sudo mv gcc gcc.bak #備份
sudo ln -s gcc-4.8 gcc  #從新指向
複製代碼

執行gcc --version 可檢查是否爲4.8版本,g++可執行一樣的操做。

4. 安裝CUDA和cuDNN

進入CUDA9.0的下載頁,選擇安裝類型爲runfile(local),可發現有一個基礎安裝包,和三個補丁包,都下載下來,而後依次執行:

sudo sh cuda_9.0.176_384.81_linux.run
複製代碼

  安裝時會以提問的方式,一路默認便可,當第二個詢問是否安裝新驅動程序時,選擇否,其他均是yes。而後再以一樣的方式安裝如下補丁包。

sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run 
複製代碼

  結束後,能夠在/usr/local/cuda-9.0 發現有安裝文件,執行sudo gedit /etc/profile或者sudo gedit ~/.bashrc/etc/profile~/.bashrc的文件後面添加環境變量: 

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}}  
複製代碼

  而後執行source ~/.bashrc或者source /etc/profile讓剛剛修改的環境變量生效。而後執行nvcc -V來驗證CUDA是否完成安裝。

安裝好CUDA9.0後,接下來就安裝cuDNN,進入cuDNN下載頁選擇 cuDNN v7.3.1 Library for Linux 下載。

​ 執行以下命令:

tar -xzvf cudnn-9.0-linux-x64-v7.tgz
複製代碼

  進入解壓目錄,執行:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
複製代碼

  這樣就安裝完成了。

5. 安裝pyenv

這裏我採用了pyenv的方式來隔離不一樣環境下的python。

首先安裝curl,它一個命令行式的下載工具

sudo apt install curl
複製代碼

而後下載pyenv的安裝包,pyenv的GitHub連接:pyenv

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
複製代碼

編輯~/.bashrc:

sudo gedit ~/.bashrc
複製代碼

在該文件中添加如下內容(直接複製便可):

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"</pre>
複製代碼

終端執行如下命令安裝python的依賴包

sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev
複製代碼

安裝python 3.6.5

pyenv install 3.6.5
複製代碼

安裝過程可能很緩慢,一個簡便方法,只須要在python的官網(此處給出python3.6.5的下載地址)下載你須要的python版本的tar.xz文件而後放到 ~/.pyenv/cache中而後再執行pyenv install [version]就能夠了,cache文件夾可能不存在,請自行新建。

image

pyenv的經常使用命令

image

上圖是官方文檔中的例子,若是想要查看完整命令列表,能夠點擊查看pyenv命令列表

在終端執行pyenv global 3.6.5便可將3.6.5設置爲系統默認的python環境

6. 安裝tensorflow-gpu

終端中輸入如下命令便可安裝:

pip install --index-url http://pypi.douban.com/simple --trusted-host pypi.douban.com --upgrade tensorflow-gpu
複製代碼

7. 驗證結果

利用終端新建一個.py文件

touch test.py
複製代碼

而後利用Visual Studio Code打開該文件

code test.py
複製代碼

輸入

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
複製代碼

而後執行該腳本python test.py便可獲得包含有GPU輸出信息的正確結果

相關文章
相關標籤/搜索