一剖笙、安裝 TensorFlow GPU 版本
????????安裝 TensorFlow-GPU 版的關(guān)鍵點(diǎn)在于 cuda 和 cudnn 的安裝和配置呻逆,注意它們的版本是否和 TensorFlow 的版本匹配。以下空入,以安裝 TensorFlow 1.5.0 為例络它,其中匹配的 cuda/cudnn 的版本分別為 cuda 9.0 和 cudnn 7.0。
1.安裝 NVIDIA 顯卡驅(qū)動(dòng)
????????首先在終端查看顯卡信息:
$ sudo lshw -numeric -C display
也可以使用命令:
$ lspci | grep -i nvidia
確認(rèn)顯卡信息歪赢。
????????知道顯卡信息之后化戳,在 NVIDIA 官網(wǎng)搜索對(duì)應(yīng)的顯卡驅(qū)動(dòng),比如 TITAN X(Pascal)/GTX 1080Ti 等顯卡查到的驅(qū)動(dòng)為384埋凯。另外点楼,使用
$ ubuntu-drivers devices
可以直接查看系統(tǒng)推薦的 NVIDIA 顯卡驅(qū)動(dòng)(在返回的信息中找到 recommended 對(duì)應(yīng)的 driver,比如 nvidia-384)白对。一般來(lái)說(shuō)掠廓,即便查詢到的(及后續(xù)安裝的)驅(qū)動(dòng)不是最新版的,在安裝時(shí)也會(huì)自動(dòng)安裝最新的(與系統(tǒng)適配)的顯卡驅(qū)動(dòng)甩恼。
????????查詢到顯卡驅(qū)動(dòng)之后蟀瞧,使用命令
$ sudo apt-get install nvidia-xxx
安裝驅(qū)動(dòng)沉颂。如要安裝顯卡驅(qū)動(dòng)的版本為384,則對(duì)應(yīng)的命令為:
$ sudo apt-get install nvidia-384
????????安裝完成之后悦污,使用
$ nvidia-smi
查看驅(qū)動(dòng)是否安裝成功铸屉。若返回一個(gè)關(guān)于驅(qū)動(dòng)的表格說(shuō)明安裝成功。(可能需要重啟電腦)
2.安裝 CUDA 9.0
????????在 NVIDIA 官網(wǎng)直接查找 cuda切端,下載與操作系統(tǒng)匹配的 runfile 文件抬探,如 cuda_9.0.176_384.81_linux.run,進(jìn)入該文件所在目錄帆赢,執(zhí)行
$ sudo sh xxx.run --override
如小压,以安裝 cuda_9.0.176_384.81_linux.run 為例,執(zhí)行命令
$ sudo sh cuda_9.0.176_384.81_linux.run --override
然后按 Ctrl+C 跳過(guò)more(0%)椰于,輸入 accept怠益,選擇 no(因?yàn)橐呀?jīng)安裝過(guò)顯卡驅(qū)動(dòng)了),后面按照需要選擇 y/n 可順利完成安裝瘾婿。
????????接下來(lái)為 cuda 配置環(huán)境變量:
$ sudo gedit ~/.bashrc
在打開(kāi)的文件末尾加入兩行:
export PATH=”$PATH:/usr/local/cuda-9.0/bin”
export PATH=”$PATH:/usr/local/cuda-9.0/lib64”
保存之后執(zhí)行 $ source ~/.bashrc
使改動(dòng)立即生效蜻牢。(根據(jù)使用版本修改 cuda-9.0 對(duì)應(yīng)項(xiàng))
????????在終端輸入 $ nvcc --version
查看是否安裝成功,如輸出版本信息則表示安裝成功偏陪。若提示 nvcc 是無(wú)效的指令抢呆,使用
$ sudo apt install nvidia-cuda-toolkit
安裝,然后再確認(rèn)笛谦。
????????若要卸載 cuda抱虐,進(jìn)入 cuda 安裝路徑,比如文件夾 /usr/local/cuda-9.0/bin 執(zhí)行:
$ sudo ./uninstall_cuda_9.0.pl
3.配置 NVIDIA 深度學(xué)習(xí)庫(kù) cuDNN 7.0
????????在 NVIDIA 官網(wǎng)搜索 cudnn饥脑,注冊(cè)開(kāi)發(fā)者賬號(hào)恳邀,然后下載與 cuda 版本匹配的 cudnn 文件,如與 cuda9.0 匹配的 cudnn7.0 文件為:cudnn-9.0-linux-x64-v7.tgz 灶轰。進(jìn)入該文件所在目錄谣沸,執(zhí)行
$ tar -zxvf 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
退到根目錄,執(zhí)行:
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
4.安裝 TensorFlow GPU 版
????????使用如下指令直接安裝 TensorFlow GPU 版:
$ sudo pip/pip3 install tensorflow-gpu
然后笋颤,還需要將 2 中的環(huán)境變量修改為 TensorFlow 要求的格式:
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64”
export CUDA_HOME=/usr/local/cuda-9.0
(注意將 cuda-9.0 修改為自己安裝的對(duì)應(yīng)版本)
????????最后乳附,在 Python2.7/Python3.5 中使用
>>> import tensorflow
驗(yàn)證是否安裝成功。
二伴澄、配置OpenCV(針對(duì)Python)
????????以配置 OpenCV3.3.0 為例赋除,其它版本類似。
注意:到目前為止秉版,直接使用:
$ sudo pip/pip3 install opencv-python
安裝的 OpenCV 不支持視頻類操作贤重。
1.安裝依賴項(xiàng)
(1)更新安裝包管理工具
$ sudo apt-get update
$ sudo apt-get upgrade
(2)安裝編譯工具
$ sudo apt-get install build-essential cmake pkg-config
(3)安裝依賴的圖像庫(kù)
$ sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
(4)安裝依賴的視頻解碼庫(kù)
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install libv4l-dev libxvidcore-dev libx264-dev
(5)安裝 highgui 依賴的 GTK 庫(kù)
$ sudo apt-get install libgtk-3-dev
(6)安裝提示矩陣運(yùn)算的庫(kù)
$ sudo apt-get install libatlas-base-dev gfortran
(7)安裝 Python 開(kāi)發(fā)庫(kù)
$ sudo apt-get install python2.7-dev python3.5-dev
2.編譯 OpenCV
(1)直接從 OpenCV 官網(wǎng)下載支持全平臺(tái)的 .zip 文件 3.3.0 安裝包;
(2)unzip 解壓清焕,并進(jìn)入文件夾:$ cd opencv-3.3.0
(3)$ mkdir build && cd build
(4)編譯 OpenCV
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D PYTHON2_EXCUTABLE=/usr/bin/python2 \
-D PYTHON3_EXCUTABLE=/usr/bin/python3 \
-D BUILD_EXAMPLES=ON .. (兩點(diǎn)不可少)
注意:配置 OpenCV 需要在安裝 CUDA 之前并蝗,否則這一步會(huì)失敗祭犯。
(5)$ make -j4
(6)$ sudo make install
(7)$ sudo ldconfig
3.驗(yàn)證是否安裝成功
????????在 Python2.7 和 Python3.5 內(nèi)執(zhí)行(需要攝像頭):
>>> import cv2
>>> cap = cv2.VideoCapture(0)
>>> print(cap.isOpened())
查看是否可以打開(kāi)攝像頭。