前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu 16.04 Install OpenCV3.4 Pytorch Mxnet Tensorflow

Ubuntu 16.04 Install OpenCV3.4 Pytorch Mxnet Tensorflow

作者头像
吕海峰
发布2018-04-16 16:15:48
1.3K0
发布2018-04-16 16:15:48
举报
文章被收录于专栏:BrianBrian

概述

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

安装

安装预编译包

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

代码语言:javascript
复制
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提供的官网指令去安装即可。

代码语言:javascript
复制
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版本通过如下指令安装即可,可能需要注册。

代码语言:javascript
复制
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的参数设置为环境变量,以便于系统级别直接访问。

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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的开发库以及一些第三方库。

代码语言:javascript
复制
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环境。

代码语言:javascript
复制
bash Miniconda3-latest-Linux-x86_64.sh

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

代码语言:javascript
复制
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都可以。

代码语言:javascript
复制
tar xzvf opencv.tgz
tar xzvf opencv_contrib.tgz
cd opencv
mkdir build

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

代码语言:javascript
复制
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进行编译。

代码语言:javascript
复制
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的校验和,需要将文件名增加校验和。

代码语言:javascript
复制
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。这个根据自己的需要进行安装和设计。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 安装
    • 安装预编译包
      • 安装cuda
        • 安装cuDNN
          • 安装深度学习所需要的依赖包
            • 安装虚拟化的独立环境
              • 安装opencv
                • 验证所有软件是否成功
                  • 出现的问题
                  • 总结
                  相关产品与服务
                  GPU 云服务器
                  GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档