learn opencv-Ubuntu(cuda)上安装深度学习框架

参考:
https://github.com/spmallick/learnopencv


在带有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

更加详细步骤参考:
http://blog.youkuaiyun.com/wc781708249/article/details/78502807

首先,我们将安装依赖关系

# 更新软件包
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基础和前馈神经网络基础上的下一篇文章。 关于深度学习的更多信息请参阅。 敬请关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值