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

来源:互联网 发布:c语言用什么编程软件好 编辑:程序博客网 时间:2024/06/09 07:54

参考:
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 updatesudo 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 vimsudo 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.debsudo apt-get updatesudo 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.tgzsudo cp -P cuda/lib64/* /usr/local/cuda/lib64/sudo cp cuda/include/* /usr/local/cuda/include/

这应该得到所有关于CUDA和cuDNN的整理

步骤4:安装DL框架的要求

安装深度学习框架的依赖关系

sudo apt-get updatesudo 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.orgsudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.orgsudo ln -s /usr/lib/nvidia-375/libEGL.so.375.82 /usr/lib/nvidia-375/libEGL.so.1sudo 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 doxygensudo 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-scipysudo apt-get install -y python3-dev python3-pip python3-nose python3-numpy python3-scipy

第5步:启用虚拟环境

我们大多数人都在不同的项目上工作,并且也希望将这些项目的设置分开。 这可以使用Python中的虚拟环境来完成。 在虚拟环境中,您可以安装任何python库,而不会影响全局安装或其他虚拟环境。 这样,即使您在一个虚拟环境中损坏了库,您的其余项目仍然安全。 强烈建议使用虚拟环境。

安装虚拟环境包装器,使我们能够在python中创建和使用虚拟环境。

sudo pip2 install virtualenv virtualenvwrappersudo pip3 install virtualenv virtualenvwrapperecho "# Virtual Environment Wrapper"  >> ~/.bashrcecho "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrcsource ~/.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 2mkvirtualenv virtual-py2 -p python2# Activate the virtual environmentworkon virtual-py2pip install numpy scipy matplotlib scikit-image scikit-learn ipython protobuf jupyter# If you do not have CUDA installedpip install tensorflow# If you have CUDA installedpip install tensorflow-gpu pip install Theano pip install keraspip install http://download.pytorch.org/whl/cu80/torch-0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whlpip install dlibdeactivate

For Python 3

# create a virtual environment for python 3mkvirtualenv virtual-py3 -p python3# Activate the virtual environmentworkon virtual-py3pip install numpy scipy matplotlib scikit-image scikit-learn ipython protobuf jupyter# If you do not have CUDA installedpip install tensorflow# If you have CUDA installedpip install tensorflow-gpu pip install Theano pip install keraspip install http://download.pytorch.org/whl/cu80/torch-0.2.0.post3-cp35-cp35m-manylinux1_x86_64.whlpip install dlibdeactivate

检查框架的安装

workon virtual-py2pythonimport numpynumpy.__version__import theanotheano.__version__import tensorflowtensorflow.__version__import keraskeras.__version__import torchtorch.__version__import cv2cv2.__version__

您应该得到类似于下图所示的输出

如果你想安装OpenCV 3.3,请继续

第七步:安装OpenCV 3.3

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

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

# 更新软件包sudo apt-get updatesudo apt-get upgrade## 注: 如果提示 sudo apt-get update or --fix-missing# 则需执行以下2行命令sudo apt-get updatesudo apt-get upgrade --fix-missing####################################################sudo apt-get remove x264 libx264-devsudo apt-get install -y checkinstall yasmsudo apt-get install -y libjpeg8-dev libjasper-dev libpng12-dev# If you are using Ubuntu 14.04sudo apt-get install -y libtiff4-dev# If you are using Ubuntu 16.04sudo apt-get install -y libtiff5-devsudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-devsudo apt-get install -y libxine2-dev libv4l-devsudo apt-get install -y libgstreamer0.10-dev libgstreamer-plugins-base0.10-devsudo apt-get install -y libqt4-dev libgtk2.0-dev libtbb-devsudo apt-get install -y libfaac-dev libmp3lame-dev libtheora-devsudo apt-get install -y libvorbis-dev libxvidcore-devsudo apt-get install -y libopencore-amrnb-dev libopencore-amrwb-devsudo 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 opencvmkdir buildcd build#Remove the line WITH_CUDA=ON if you dont have CUDA in your systemcmake -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 -j1sudo make installsudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'sudo ldconfig

将OpenCV链接到您的虚拟环境

# Link the opencv to python virtual environmentfind /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-packagesln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so############ For Python 3 ############cd ~/.virtualenvs/virtual-py3/lib/python3.5/site-packagesln -s /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

检查OpenCV安装

workon virtual-py2pythonimport cv2cv2.__version__

你应该得到类似于下面给出的数字的输出

这里写图片描述

接下来是什么?

看看我们在Keras基础和前馈神经网络基础上的下一篇文章。 关于深度学习的更多信息请参阅。 敬请关注!