1. 程式人生 > >learn opencv-Ubuntu(cuda)上安裝深度學習框架

learn opencv-Ubuntu(cuda)上安裝深度學習框架

在帶有CUDA支援的Ubuntu上安裝深度學習框架

在本文中,我們將學習如何在具有NVIDIA圖形卡的機器上安裝TensorFlow,Theano,Keras和PyTorch等深度學習框架。

如果你有一個全新的顯示卡的計算機,你不知道什麼樣的庫來開始深入的學習之旅,這篇文章將幫助你。

我們將逐步安裝CUDA,cuDNN,Python 2,Python 3,TensorFlow,Theano,Keras,Pytorch,OpenCV,Dlib以及其他Python機器學習庫。

我們已經通過以下配置測試了系統上的說明:
處理器:Intel Core i7 6850K,6核心,40條PCIe線
主機板:技嘉X99P - SLI
記憶體:32 GB
顯示卡:Zotac GeForce GTX 1080 Ti,記憶體11 GB

假設我們將在一個新的Ubuntu 16.04安裝。 即之前沒有在系統上安裝任何軟體。

第1步:安裝先決條件

在安裝任何東西之前,讓我們首先更新儲存在計算機上的軟體包的資訊,並將已安裝的軟體包升級到最新版本。

sudo apt-get update
sudo apt-get upgrade

接下來,我們將在安裝過程中安裝一些我們可能需要的基本軟體包。 另外,刪除不需要的包。

sudo apt-get install -y build-essential cmake gfortran git pkg-config 
sudo apt-get install -y python-dev software-properties-common wget vim
sudo apt-get autoremove

第2步:安裝CUDA

CUDA(Compute Unified Device Architecture)是NVIDIA開發的平行計算平臺和API,利用GPU的平行計算功能。 為了使用顯示卡,我們需要在我們的系統上安裝CUDA驅動程式。

如果您沒有NVIDIA CUDA支援的顯示卡,那麼您可以跳過這一步。 並轉到步驟4。

從官方的nvidia網站下載CUDA驅動程式。 我們建議您從安裝程式型別下載deb(本地)版本,如下面的截圖所示。
這裡寫圖片描述

下載檔案後,進入下載檔案的資料夾,從終端執行以下命令安裝CUDA驅動程式。

請確保下面的命令中使用的檔名與下載的檔案相同。

sudo dpkg -i cuda-repo-ubuntu1604-8
-0-local-ga2_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install -y cuda-8.0

執行以下命令,通過執行NVIDIA的系統管理介面(nvidia-smi)來檢查驅動程式是否安裝成功。 它是一個用於監視GPU狀態的工具。

nvidia-smi

你應該得到如下所示的輸出。

這裡寫圖片描述

另外,我發現,除了獲得更好的顯示解析度選項之外,安裝CUDA驅動程式可將顯示卡的功耗從71W降至16W,以便通過PCIe x16連線NVIDIA GTX 1080 Ti GPU。

第3步:安裝cuDNN

CUDA深度神經網路(cuDNN)是用於進一步優化神經網路計算的庫。 它是使用CUDA API編寫的。

進入官方cudnn網站,填寫下載cuDNN庫的表單。 在到達下載連結(示例如下)後,您應該從選項下載“cuDNN v6.0 Linux版庫”。
這裡寫圖片描述

現在,轉到已下載“.tgz”檔案的資料夾,然後從命令列執行以下操作。

tar xvf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp -P cuda/lib64/* /usr/local/cuda/lib64/
sudo cp cuda/include/* /usr/local/cuda/include/

這應該得到所有關於CUDA和cuDNN的整理

步驟4:安裝DL框架的要求

安裝深度學習框架的依賴關係

sudo apt-get update
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libopencv-dev

注意:如果您收到警告說
/usr/lib/nvidia-375/libEGL.so.1 不是一個符號連結
然後執行以下命令。

sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.82 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.82 /usr/lib32/nvidia-375/libEGL.so.1

接下來,我們安裝Python 2和3以及其他重要的軟體包,如boost,lmdb,glog,blas等。

sudo apt-get install -y --no-install-recommends libboost-all-dev doxygen
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev libblas-dev 
sudo apt-get install -y libatlas-base-dev libopenblas-dev libgphoto2-dev libeigen3-dev libhdf5-dev 

sudo apt-get install -y python-dev python-pip python-nose python-numpy python-scipy
sudo apt-get install -y python3-dev python3-pip python3-nose python3-numpy python3-scipy

第5步:啟用虛擬環境

我們大多數人都在不同的專案上工作,並且也希望將這些專案的設定分開。 這可以使用Python中的虛擬環境來完成。 在虛擬環境中,您可以安裝任何python庫,而不會影響全域性安裝或其他虛擬環境。 這樣,即使您在一個虛擬環境中損壞了庫,您的其餘專案仍然安全。 強烈建議使用虛擬環境。

安裝虛擬環境包裝器,使我們能夠在python中建立和使用虛擬環境。

sudo pip2 install virtualenv virtualenvwrapper
sudo pip3 install virtualenv virtualenvwrapper
echo "# Virtual Environment Wrapper"  >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc

第6步:安裝深度學習框架

現在,我們安裝Tensorflow,Keras,PyTorch,dlib以及其他標準的Python ML庫,如numpy,scipy,sklearn等
我們將建立虛擬環境並在其中安裝所有深度學習框架。 我們為Python 2和Python 3建立單獨的環境。

請注意PyTorch在寫這篇文章的時候處於測試階段。 所以,PyTorch的下載連結將來可能會改變。 您可以訪問此連結,根據您的桌面配置獲取正確的下載連結。

For Python 2

# create a virtual environment for python 2
mkvirtualenv virtual-py2 -p python2
# Activate the virtual environment
workon virtual-py2

pip install numpy scipy matplotlib scikit-image scikit-learn ipython protobuf jupyter

# If you do not have CUDA installed
pip install tensorflow
# If you have CUDA installed
pip install tensorflow-gpu 

pip install Theano 
pip install keras
pip install http://download.pytorch.org/whl/cu80/torch-0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whl
pip install dlib

deactivate

For Python 3

# create a virtual environment for python 3
mkvirtualenv virtual-py3 -p python3
# Activate the virtual environment
workon virtual-py3

pip install numpy scipy matplotlib scikit-image scikit-learn ipython protobuf jupyter

# If you do not have CUDA installed
pip install tensorflow
# If you have CUDA installed
pip install tensorflow-gpu 

pip install Theano 
pip install keras
pip install http://download.pytorch.org/whl/cu80/torch-0.2.0.post3-cp35-cp35m-manylinux1_x86_64.whl
pip install dlib

deactivate

檢查框架的安裝

workon virtual-py2
python
import numpy
numpy.__version__
import theano
theano.__version__
import tensorflow
tensorflow.__version__
import keras
keras.__version__
import torch
torch.__version__
import cv2
cv2.__version__

您應該得到類似於下圖所示的輸出

如果你想安裝OpenCV 3.3,請繼續

第七步:安裝OpenCV 3.3

首先,我們將安裝依賴關係

# 更新軟體包
sudo apt-get update
sudo apt-get upgrade

## 注: 如果提示 sudo apt-get update or --fix-missing
# 則需執行以下2行命令
sudo apt-get update
sudo apt-get upgrade --fix-missing

####################################################

sudo apt-get remove x264 libx264-dev
sudo apt-get install -y checkinstall yasm
sudo apt-get install -y libjpeg8-dev libjasper-dev libpng12-dev

# If you are using Ubuntu 14.04
sudo apt-get install -y libtiff4-dev
# If you are using Ubuntu 16.04
sudo apt-get install -y libtiff5-dev

sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install -y libxine2-dev libv4l-dev
sudo apt-get install -y libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install -y libqt4-dev libgtk2.0-dev libtbb-dev
sudo apt-get install -y libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install -y libvorbis-dev libxvidcore-dev
sudo apt-get install -y libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install -y x264 v4l-utils

下載OpenCV和OpenCV-contrib

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

配置並生成MakeFile

cd opencv
mkdir build
cd build
#Remove the line WITH_CUDA=ON if you dont have CUDA in your system

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D WITH_TBB=ON \
      -D WITH_V4L=ON \
      -D WITH_QT=ON \
      -D WITH_OPENGL=ON \
      -D WITH_CUDA=ON \
      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
      -D BUILD_EXAMPLES=ON ..

編譯和安裝

注:make操作需要相當長的時間,在i7處理器上使用12個核心幾乎需要一個小時。 另外,在某些地方可能會卡住很長時間,但除非卡住了一個多小時,否則不要擔心。

make -j4 
# 如果報錯 執行
make -j1

sudo make install
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

將OpenCV連結到您的虛擬環境

# Link the opencv to python virtual environment
find /usr/local/lib/ -type f -name "cv2*.so"

它應該給出類似於下面所示的輸出

/usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so
/usr/local/lib/python2.7/dist-packages/cv2.so

這些是OpenCV的Python執行時庫檔案(cv2.so)所在的位置。 我們需要在虛擬環境中為這些檔案建立符號連結,以便在OpenCV中使用OpenCV,而無需重新安裝OpenCV。

請注意cv2.so檔案的確切路徑。 在我的系統中,它位於dist-packages中。 但在大多數系統中,它位於site-packages目錄中。

符號連結的建立過程如下

############ For Python 2 ############
cd ~/.virtualenvs/virtual-py2/lib/python2.7/site-packages
ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so

############ For Python 3 ############
cd ~/.virtualenvs/virtual-py3/lib/python3.5/site-packages
ln -s /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

檢查OpenCV安裝

workon virtual-py2
python
import cv2
cv2.__version__

你應該得到類似於下面給出的數字的輸出

這裡寫圖片描述

接下來是什麼?

看看我們在Keras基礎和前饋神經網路基礎上的下一篇文章。 關於深度學習的更多資訊請參閱。 敬請關注!