Ubuntu18.04安裝cuda8.0 cudnn5.1 opencv3.4.0 caffe(TextBoxes++))

首先,恭喜你入了caffe的坑。
其次,给个建议,当你碰到各种莫名其妙的问题都是no answer之后,建议重装系统。

一、win10安裝Ubuntu 18.04

超详细!Win10(UEFI启动模式)安装Ubuntu18.04双系统
win10安装ubuntu18.04LTS双系统
windows10删除EFI分区(绝对安全)
如何删除EFI分区
注:如果之前设置的内存合适,可以直接原基础上重新安装,不用删除磁盘分区。

二、安装Nvidia显卡驱动教程

Ubuntu18.04安装Nvidia显卡驱动教程

0. 前期准备

禁用BIOS的secure boot,即disable它,如果不关闭,使用第三方源安装显卡驱动会安装后不能使用。

1. 禁用nouveau

  • 创建文件(直接在终端输入以下命令)
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
  • 在文件中插入以下内容,将nouveau加入黑名单,默认不开启
blacklist nouveau
options nouveau modeset=0
  • 输入以下命令使禁用生效然后重启
sudo update-initramfs -u
sudo reboot
  • 重启后验证
lsmod | grep nouveau

如果回车后无反应,则禁用成功

2. 安装显卡驱动

先完全卸载之前安装的显卡驱动:
ppa源文件卸载:

sudo apt-get remove --purge nvidia*

runfile源文件卸载:

sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall

ppa源驱动安装

查询电脑最适合的显卡驱动版本:

ubuntu-drivers devices

选择free recommended。如果遇到nvidia-driver版本与cuda版本匹配问题,也不一定选择free recommended,可以选择列出来的与cuda匹配的。


比如我的推荐的是nvidia-driver-440,但是我实际安装的是nvidia-driver-390。
用命令行安装显卡驱动

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-driver-390 #此处数字要对应上面查询到的版本号
sudo apt-get install mesa-common-dev

注意: 如果前面没有禁用secure boot,则在安装过程中会提示设置一个密码,在重启时需要输入密码验证以禁用secure boot,重启后会出现蓝屏,这时候不能直接选择continue,而应该按下按键,选择Enroll MOK, 确认后在下一个选项中选择continue,接着输入安装驱动时设置的密码,开机。
安装完成后重启

sudo reboot

重启后在终端验证

nvidia-smi

如果出现上面安装的gpu列表,则安装成功。


三、 安装Cuda8.0+Cudnn5.1

Ubunt16.04快速安装 Cuda8.0 + Cudnn5.1 (Cuda9.0 + Cudnn7.1 )
Ubuntu 18.04 GT610 Cuda8.0 Caffe环境搭建
Ubuntu 20.04 CUDA&cuDNN安装方法

1. 安装cuda

下载cuda安装包
cuda安装包下载地址,我选择了CUDA Toolkit 8.0 GA2—Linux—x86_64—Ubuntu—16.04—deb(local)
百度云盘地址:来自Ubunt16.04快速安装 Cuda8.0 + Cudnn5.1 (Cuda9.0 + Cudnn7.1 )
https://pan.baidu.com/s/1jcRBY7DriOhoMmLZLPhBiw
命令行安装

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb #这里休要根据下载的.deb文件相应改变
sudo apt-get update
sudo apt-get install cuda

在系统环境设置cuda路径

sudo gedit  ~/.bashrc

在文件 ~/.bashrc 中追加以下内容:

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-8.0
export PATH=/usr/local/cuda-8.0/bin:$PATH

cuda卸载

  1. run文件安装时,用如下命令卸载
sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
sudo rm -rf /usr/local/cuda-8.0 // 删除剩余的cudnn文件
  1. cuda/bin文件夹中不含有uninstall_cuda_8.0.pl,这时可以用另外一种方法卸载:
sudo apt-get remove cuda
sudo apt autoremove
sudo apt-get remove cuda*
cd /usr/local/
sudo rm -rf cuda-8.0

2. 安装cudnn

下载cudnn
cudnn下载地址(注册下载)
百度云盘地址:来自Ubunt16.04快速安装 Cuda8.0 + Cudnn5.1 (Cuda9.0 + Cudnn7.1 )
https://pan.baidu.com/s/1mL6E0UZsWhd__vnCF3AJoQ
解压
进入下载cudnn都文件目录下,终端输入:

sudo tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz

将cudnn解压得到的文件分别拷贝到已经装好的Cuda中去

cd cuda/include 
sudo cp *.h /usr/local/cuda/include/  #(注意这里是你自己的cuda的安装地址,复制*.h文件)
cd cuda/lib64 
sudo cp libcudnn* /usr/local/cuda/lib64/ 
which nvcc   #可以查看cuda安装路径
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* 

检查cuda和cudnn是否安装成功

nvcc -V
cat  /usr/local/cuda/version.txt  #查看cuda版本,cuda一般安装在 /usr/local/cuda/ 路径下
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2   # 查看cudnn版本

如果看到的版本与刚才安装的一致,则说明安装成功。

四、安装opencv3.4.0

1. 安装ffmpeg

git clone https://github.com/FFmpeg/FFmpeg.git
git checkout n3.4.5 // checkout到一个可以支持opencv3.4.0的任一版本
./configure --enable-shared // 需要编译成静态库
make
sudo make install

这里安装可能会出现一些简单的问题,google一下可以轻松解决。

2. 修改gcc和g++版本

Ubuntu18.04 修改gcc/g++版本
由于编译时可能因为gcc和g++版本问题导致编译失败,此时将gcc和g++版本修改为5版本

3. 安装opencv3.4.0

进opencv官网(https://opencv.org/releases/)下载源代码。
解压

unzip opencv-3.4.0.zip

将解压的文件放在你想要安装的位置,进入文件里面,打开终端。
opencv3.4.0与cuda8.0不兼容,修改 /opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp中这一行,改成下面形式。

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

接着安装opencv依赖

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg

可选包:
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

编译安装opencv

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
####如果报错nvcc fatal : Unsupported gpu architecture 'compute_20',使用下面语句
#####cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
make -j12 #j后面数字代表cpu线程数,可用以下命令查看grep 'processor' /proc/cpuinfo | sort -u | wc -l
sudo make install #上面成功后再执行安装,有bug就google找解决方案吧
###安装完成后,可查看安装目录下是否生成了libopencv*.so等文件###
ls /usr/local/lib/libopencv*

查看opencv版本

pkg-config --modversion opencv  

添加库路径

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

在里面写入(注意如果安装目录更改的话,这里需要更改,是安装目录下的lib目录,可以添加前查看是否有此目录)

/usr/local/lib

然后配置环境变量

sudo gedit /etc/profile

添加内容

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

这样就安装完成了,可以进行如下测试

cd <opencv_path>/samples/cpp/example_cmake
cmake .
make
./opencv_example

[Ubuntu+opencv]Ubuntu18.04安装opencv3.4.3

开启摄像头并显示即正确。

4. 安装opencv_contrib(可选,此时我没安装)

Ubuntu 18.04 GT610 Cuda8.0 Caffe环境搭建

四、安装caffe

1. 安装依赖

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential

注意:如果有boost版本问题,可以编译安装boost1.68

2. 克隆源码

git clone https://github.com/BVLC/caffe.git
git clone https://github.com/MhLiao/TextBoxes_plusplus.git

此时如果速度过慢,可以使用码云https://gitee.com/提速。(提速教程google)

3. 修改Makefile.config

cd ~/caffe // 进入到Caffe源码目录
cp Makefile.config.example Makefile.config
gedit Makefile.config // 编辑Makefile.config文件

Makefile.config文件有很多选项配置,需要根据当前使用场景进行配置。我们只进行以下配置修改:

1. 应用OpenCV 3 版本
打开OPENCV_VERSION选项:
#OPENCV_VERSION := 3修改为
OPENCV_VERSION := 3
2. 应用Python接口
打开 WITH_PYTHON_LAYER选项:
#WITH_PYTHON_LAYER := 1修改为WITH_PYTHON_LAYER := 1
3.修改 INCLUDE_DIRS和LIBRARY_DIRS路径
为INCLUDE_DIRS和LIBRARY_DIRS添加路径:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
4. 去掉compute_20
找到CUDA_ARCH,将其中包含-gencode arch=compute_20的行删掉。

4. 修改Makefile

为NVCCFLAGS添加编译选项:
由:
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
改为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
修改LIBRARIES:
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

如果编译报错

LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
/usr/bin/ld: 找不到 -lboost_python

则将

PYTHON_LIBRARIES ?= boost_python python2.7//改为
PYTHON_LIBRARIES ?= boost_python27 python2.7

需要makefile.config和makefile文件可在评论区留下邮箱。

5. 安装caffe

sudo make all -j12 #make出错之后查找原因,需要sudo make clean再进行 sudo make all -j12
sudo make pycaffe
sudo make runtest -j12//可以加-j12选项,加速编译

6. 调用python接口

由于上面已经编译安装了pycaffe,接下来添加python路径,使其生效。

sudo gedit /etc/profile
#打开文件后,添加以下内容
export PYTHONPATH=/home/djw/TextBoxes_plusplus/python:$PYTHONPATH  ###python的具体安装目录
source /etc/profile #使其生效
#测试
python
import caffe

7. 常见caffe踩坑记录

安装过程各种出错,google搜索failed的原因,不行的话再考虑google打开以下网页,Ctrl+F搜索查找相关问题吧。再不行重装系统,重装系统,重装系统。重装系统往往比你找编译bug这快更有效。
Ubuntu 18.04 GT610 Cuda8.0 Caffe环境搭建
【深度教程】Ubuntu16.04 安装环境配置 (CUDA+cuDNN+NCCL+OpenCV+Caffe)
caffe缺少NCCL库导致不能多GPU训练问题(改makefile版)
Ubuntu18.04 Caffe 安装步骤记录(超详尽)
Ubuntu 18.04 GT610 Cuda8.0 Caffe环境搭建
ubuntu下编译caffe
caffe安装--踩坑
ubuntu16.04+cuda8.0.44+cudnn5.1.5+caffe问题集
build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.Please set them or make sure they are set and tested correctly in the CMake files:CUDA_nppi_LIBRARY (ADVANCED)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269