阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 16.04下TensorFlow+Caffe+OpenCV3.1+Theano部署

150次阅读
没有评论

共计 6127 个字符,预计需要花费 16 分钟才能阅读完成。

分享下 Ubuntu 16.04 下 TensorFlow+Caffe+OpenCV3.1+Theano 的安装部署全过程,希望对大家有所帮助。

1. 首先安装 Ubuntu 16.04 系统.

2. 安装显卡驱动
在官网上下载最新的 NVIDIA-Linux-x86_64-375.26.run 驱动. 然后
Ctrl+Alt+F1 进入控制台, 输入

sudo service lightdm stop
sudo sh NVIDIA-Linux-x86_64-375.26.run

安装驱动的时候会冒出一个 The distribution-provided pre-install script failed! Are you sure you want to continue? 这样的错误提示, 直接无视下一步就可以了.
安装过后

sudo service lightdm start

切换回桌面.

安装过后用 nvidia-smi 命令验证一下是不是安装成功, 如果重启之后没有黑屏的话那么恭喜你安装成功了.

3. 安装 cuda
安装 cuda 最新的驱动 cuda_8.0.44_linu.run, 这个驱动据说解决了 gcc- 5 版本的坑, 因为我的 ubuntu 最新自带的是 gcc-5.4, 也没有降级去验证. 只是没遇到这样的坑, 我想应该是解决了.
之后就是配置 CUDA 环境变量:

sudo gedit ~/.bashrc

在 bashrc 文件末尾加上:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

接着:

sudo gedit /etc/profile

在文件末尾加上:

export PATH = /usr/local/cuda/bin:$PATH

最后创建 conf 文件:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在 conf 文件里加入以下内容:

/usr/local/cuda/lib64

执行

sudo ldconfig

这一切完成之后运行一下 cuda 的例子看看能不能成功运行.

4.CUDNN
下载 cuDNN v5.1 Library for Linux 并解压.
进入 cudnn5.1 解压之后的 include 目录,在命令行里把 cudnn 的头文件和库文件复制到相应的目录下:

sudo cp ./include/cudnn.h /usr/local/cuda/include/
sudo cp ./lib64/lib* /usr/local/cuda/lib64/

接着进入/usr/local/cuda/lib64/ 这个目录下创建软连接:

sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so

这样 cudnn 就算是安装好了.

接下来的就要讨论一些容易入坑的问题了.

5.caffe 安装
为什么我要先安装 caffe? 因为 caffe 和 tensorflow 有一些共同依赖的库. 并且用 sudo apt-get 安装的依赖库的版本都不一样.
例如 caffe 的 protobuf 库是 3.0.0 的是用 gcc5 编译的, 而 tensorflow 的是 3.0.1 的, 并且是用 gcc4 的版本编译的, 所以如果先安装了 tensorflow 后会出现各种稀奇古怪的问题.
解决这个问题有两个途径:
(1). 自行手动下载和编译 boost, protobuf, gflags, glog 等库; 然后 Python 安装 protobuf 等文件

…………………….protobuf………………….

cd ~ git clone https://github.com/google/protobuf.git 
sudo apt-get install autoconf automake libtool curl  unzip 
cd protobuf 
./autogen.sh 
./configure --prefix=/usr/local
make 
make check 
sudo make install 
sudo ldconfig # refresh shared library cache.

…………………….glog……………………..

modify CMakeLists.txt
add this to CMakeLists:
set(BUILD_SHARED_LIBS TRUE)
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

…………………….gflags…………………….

modify CMakeLists.txt
add this to CMakeLists:
set(GFLAGS_BUILD_SHARED_LIBS TRUE)
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

(2). 使用系统自带的 python 库编译 caffe, anaconda 安装 tensorflow, 这样两种库就不会打架了, 副作用就是必须用多版本的 python, 网上有 pydev 的方法可以解决这个问题.
以上两种方法亲测有效. 但是我更倾向于第一种, 而且我自己的机器也是按照第一种方法安装的.

A. 安装 Anaconda2.
下载和安装 Anaconda2. 并替换掉 libstdc++,libgomp 这几个 4.x 版本的 gcc 编译动态库软连接 :

rm -rf /home/your_path/anaconda2/lib/libstdc++.so
rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so
rm -rf /home/your_path/anaconda2/lib/libstdc++.so.6
rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/your_path/anaconda2/lib/libstdc++.so.6
ln -s /home/your_path/anaconda2/lib/libstdc++.so.6 /home/your_path/anaconda2/lib/libstdc++.so
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
ln -s /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so
rm -rf /home/your_path/anaconda2/lib/libgomp.so
rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so
rm -rf /home/your_path/anaconda2/lib/libgomp.so.1
rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1
ln -s /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0 /home/your_path/anaconda2/lib/libgomp.so.1
ln -s /home/your_path/anaconda2/lib/libgomp.so.1 /home/your_path/anaconda2/lib/libgomp.so
ln -s /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1
ln -s /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so

B. 之后就是安装 caffe 安装的依赖项.

sudo apt-get install libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev liblmdb-dev libopencv-dev libopenblas-dev liblapack-dev libatlas-base-dev

C. 按照官方的要求修改 makefile.
https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide

D 编译 caffe.

6. 编译 opencv3.1
A. 首先安装 opencv 依赖项

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt-get install libgtk2.0-dev libtbb-dev
sudo apt-get install libatlas-base-dev gfortran

B. 编译 opencv

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/your_path/opencv3 -D PYTHON_INCLUDE_DIR=/home/your_path/anaconda2/include/python2.7/ -D PYTHON_INCLUDE_DIR2=/home/your_path/anaconda2/include/python2.7  -D PYTHON_LIBRARY=/home/your_path2/anaconda/lib/libpython2.7.so -D PYTHON_PACKAGES_PATH=/home/your_path/anaconda2/lib/python2.7/site-packages/ -D BUILD_EXAMPLES=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON2_LIBRARY=/home/your_path/anaconda2/lib/libpython2.7.so -D BUILD_opencv_python3=OFF -D BUILD_opencv_python2=ON ..

注意最后是空格加两点

7. 安装 theano
这个比较简单, 直接 sudo apt-get theano 就安装了

8. 安装 Tensorflow
因为之前已经安装较高且较新的 protobuf 之类的依赖库, 所以 tensorflow 安装时不会替换更新一点的 protobuf, 因此安装后不会出现打架的情况.

Ubuntu 16.04 安装配置 TensorFlow GPU 版本  http://www.linuxidc.com/Linux/2016-11/137561.htm

Ubuntu 16.04 下 CUDA8.0+Theano+Caffe+TensorFlow 环境搭建  http://www.linuxidc.com/Linux/2016-09/135528.htm

TensorFlow 的 Mac OS 下的部署和安装  http://www.linuxidc.com/Linux/2016-07/133219.htm

TensorFlow 编译过程中遇到的问题及解决方案  http://www.linuxidc.com/Linux/2016-07/133216.htm

Caffe 深度学习入门教程  http://www.linuxidc.com/Linux/2016-11/136774.htm

Ubuntu 16.04 安装配置 Caffe 图文详解 http://www.linuxidc.com/Linux/2016-12/138870.htm

Ubuntu 16.04 下 Matlab2014a+Anaconda2+OpenCV3.1+Caffe 安装 http://www.linuxidc.com/Linux/2016-07/132860.htm

Ubuntu 16.04 系统下 CUDA7.5 配置 Caffe 教程 http://www.linuxidc.com/Linux/2016-07/132859.htm

Caffe 在 Ubuntu 14.04 64bit 下的安装 http://www.linuxidc.com/Linux/2015-07/120449.htm

深度学习框架 Caffe 在 Ubuntu 下编译安装  http://www.linuxidc.com/Linux/2016-07/133225.htm

Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明  http://www.linuxidc.com/Linux/2015-04/116444.htm

Ubuntu 16.04 上安装 Caffe http://www.linuxidc.com/Linux/2016-08/134585.htm

Caffe 配置简明教程 (Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1)  http://www.linuxidc.com/Linux/2016-09/135016.htm

Ubuntu 16.04 上安装 Caffe(CPU only)  http://www.linuxidc.com/Linux/2016-09/135034.htm

更多 Ubuntu 相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139503.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6127字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中