Ubuntu 16.04 Install OpenCV3.4 Pytorch Mxnet Tensorflow

概述

由于需要在Ubuntu 16.04安装多个深度学习框架所以通过博客记录一下安装过程中的坑以及一些关键步骤。这个时候我们需要安装自己需要包装。下面我们通过一步一步开始安装自己数据。记录安装了如下软件和支持: * Cuda 9.1 * cuDnn 9.0 * OpenCV 3.4 Support Python2.7 Python3.4 Cuda OpenGL OpenBLAS * Mxnet Pytorch Tensorflow

安装

安装预编译包

我们先来安装cuda,首先通过官网下载你所需要安装的版本。在安装之前先把自己的数据先把需要升级一下稳定版本和第三方支持编译的类库及包。

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

安装cuda

下载你需要的cuda(官网),然后按照如下命令或者NVIDIA提供的官网指令去安装即可。

sudo dpkg -i cuda-repo-ubuntu1604-9-1-local-xxxx_amd64.deb
sudo apt-get update
sudo apt-get install -y cuda-9.1

安装完成之后通过nvidia-smi验证是否GPU驱动是否成功。

安装cuDNN

如果你安装CUDA的版本是9.1,那么cuDNN的版本是7.1。所以查找你对应的cuDNN版本通过如下指令安装即可,可能需要注册。

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

然后将cuda和cuDNN的参数设置为环境变量,以便于系统级别直接访问。

echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"' >> ~/.bashrc
echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.bashrc
echo 'export PATH="/usr/local/cuda/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

安装深度学习所需要的依赖包

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

由于opencv3.4为了生成python2.7和python3.5的动态链接库,所以我们这边还需要安装Python2和Python3的开发库以及一些第三方库。

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

安装虚拟化的独立环境

我们为了解决我们的Python环境冲突和版本问题,我们需要安装一些虚拟化环境,对Python环境的包装和隔离。virtualenv,virtualenvwrapper和conda。我比较喜欢的是conda,所以我们需要可以下载miniconda来管理我们python环境。

bash Miniconda3-latest-Linux-x86_64.sh

创建虚拟化独立环境 anaconda可选,表示创建完虚拟化独立环境后,然后安装anconda。

conda create -n py35 [anaconda] python=3.5
#同样可以创建py27
pip install numpy scipy matplotlib scikit-image scikit-learn ipython protobuf jupyter
pip install keras
pip install dlib
pip install mxnet-cu91
pip install tensorflow-gpu
pip install graphviz
pip install http://download.pytorch.org/whl/cu91/torch-0.3.1-cp35-cp35m-linux_x86_64.whl
pip install torchvision
deactivate

安装opencv

我们需要在github上直接下载opencv3.4.0的source code,然后通过make编译安装,下载zip或者tgz都可以。

tar xzvf opencv.tgz
tar xzvf opencv_contrib.tgz
cd opencv
mkdir build

然后通过cmake进行生成编译make文件,我们来看一下下面的命令;

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 WITH_OPENGL=ON \
      -D BUILD_PERF_TESTS=OFF \
      -D BUILD_TESTS=OFF \
      -D CUDA_GENERATION=Auto \
      -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
      -D ENABLE_FAST_MATH=ON \
      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \
      -D BUILD_EXAMPLES=ON ..

然后根据你cmake的配置来看一下结果,如果结果为如下图所示,可以执行make进行编译。

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

然后你可以通过软连接或者pth连接到你的虚拟化独立环境里面,然后验证。

验证所有软件是否成功

出现的问题

ippicv:下载过慢阻碍编译,我们可以在github的opencv第三方库里面找到对应下载的版本copy到你的.cache(opencv-3.4.0/.cache/ippicv)目录里面。值得注意的是你下载的ippicv文件名是不带md5的校验和,需要将文件名增加校验和。

mv ippicv_2017u3_lnx_intel64_general_20170822.tgz 4e0352ce96473837b1d671ce87f17359-ippicv_2017u3_lnx_intel64_general_20170822.tgz

然后重新编译。 cuda:很多opencv3.4新增了一些新特性,比如dnn等。需要支持cuda编译的,这个时候会有一些冲突问题。所以在cmake时要指定CUDA_GENERATION=AutoCUDA_NVCC_FLAGS=”-D_FORCE_INLINES”

总结

安装过程还算胜利,如果需要在你ubuntu集群里面支持并行计算和任务调度,需要安装一些spark,MPI,mesos或者k8s。这个根据自己的需要进行安装和设计。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吉浦迅科技

【入门篇】一个小白在Jetson TX2上安装caffe的踩坑之旅

作为一个在深度学习上的小白,买Jetson TX2一个很大的原因就是想学习深度学习。那么当用Jetpack刷好板子后,第一个任务肯定是要学着安装caffe!...

693110
来自专栏小白安全

渗透测试单行化工具One-Lin3r

One-Lin3r One-Lin3r是一款简单的轻量级框架,而该工具的灵感来自于Metasploit的web-delivery模块。该工具提供...

30850
来自专栏xingoo, 一个梦想做发明家的程序员

手把手教你cuda5.5与VS2010的编译环境搭建

目前版本的cuda是很方便的,它的一个安装里面包括了Toolkit`SDK`document`Nsight等等,而不用你自己去挨个安装,这样也避免了版本的不同步...

25470
来自专栏吉浦迅科技

DAY69:阅读API Errors and Launch Failures

我们正带领大家开始阅读英文的《CUDA C Programming Guide》,今天是第69天,我们正在讲解CUDA 动态并行,希望在接下来的31天里,您可以...

13120
来自专栏性能与架构

数据表水平拆分

水平拆分就是把一张大表的内容拆分到不同数据表中,来提升数据库的性能 1张表 -> N张表 ? 拆分是根据路由算法来决定 常用的路由算法:哈希值取模 例如 ...

36480
来自专栏AI研习社

在 Mac OS X 装不上 TensorFlow?看了这篇就会装

这个文档说明了如何在 Mac OS X 上安装 TensorFlow。(从 1.2 版本开始,在 Mac OS X 上 TensorFlow 不再支持 GPU。...

66860
来自专栏CSDN技术头条

创建你的 AI 应用!

你也许会觉得: AI 程序员这么优秀,是因为他们聪明,而我只能笨鸟先飞,勤能补拙喽,当然不是!只要你掌握 AI 程序开发,还怕老板不追着你加工资?!

10930
来自专栏专注数据中心高性能网络技术研发

[RoCE]网络QoS总结

 1.什么是QoS QoS是一种机制,它给一个网络流赋予一个优先级,并且管理它的最低需求(guarantees),极限能力(limitations)和它相比其他...

42650
来自专栏向治洪

TensorFlow下载与安装

TensorFlow简介 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意...

381100
来自专栏木东居士的专栏

TensorFlow GPU 版安装

32530

扫码关注云+社区

领取腾讯云代金券