ubuntu安装caffe及python和opencv-20180801

更新时间:2024-06-07 09:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Ubuntu安装caffe及python和opencv

Ubuntu版本:16.04.03 LTS,可以比较顺利地全部安装python所需的各种依赖,而不需要安装anaconda包。否则会引起新的软件之间的冲突。

Opencv:2.4.9 Python:2.7 Cuda:8.0 Cudnn:5.1

1. 解决无法安装ubuntu操作系统的问题

最近楼主购入一台华硕游戏本,发现无法安装ubantu。在安装中发现除了debian外所有使用自动安装方式的linux发行版均不能安装,于是研究就开始了。opensuse卡在写入引导,fedroa和centos卡在启动,ubuntu卡在启动安装,怀疑是u盘制作工具有问题,于是尝试了几种工具,就连dd命令也试过了,结果都无法解决。

解决方法:重新开机,光标选中“Install Ubuntu” ,按“e”,进入grub界面,将倒数第二行中的“quiet splash ---”改为“nomodeset”。F10保存,就可以进入安装界面,进行安装。

安装ubuntu系统之后,还需要将Ubuntu集成的开源驱动加入黑名单,即增加/etc/modprobe.d/blacklist-nouveau.conf文件: sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

在该文件中增加如下两行: blacklist nouveau

options nouveau modeset=0

激活上述文件发挥功能,执行sudo update-initramfs –u

执行 $lspci | grep nouveau,查看是否有内容,没有说明禁用成功,如果有内容,就执行: $sudo reboot

2. 安装caffe及python

先下载caffe

# sudo git clone https://github.com/BVLC/caffe.git

然后安装一堆第三方库

# sudo apt-get install libatlas-base-dev # sudo apt-get install libprotobuf-dev # sudo apt-get install libleveldb-dev # sudo apt-get install libsnappy-dev # sudo apt-get install libopencv-dev # sudo apt-get install libboost-all-dev # sudo apt-get install libhdf5-serial-dev # sudo apt-get install libgflags-dev

# sudo apt-get install libgoogle-glog-dev # sudo apt-get install liblmdb-dev

# sudo apt-get install protobuf-compiler # sudo apt-get install python-dev

接着,安装opencv

1

# cd caffe

# sudo git clone https://github.com/jayrambhia/Install-OpenCV # cd Install-OpenCV/Ubuntu # sudo sh dependencies.sh # cd 2.4

# sudo sh opencv2_4_10.sh

opencv的另一种安装方式 直接克隆下来

sudo git clone https://github.com/jayrambhia/Install-OpenCV 进入 cd Install-OpenCV/Ubuntu/2.4 给所有shell脚本加上可执行权限 chmod +x *.sh

安装其他版本出错了,建议装这个: sudo ./opencv2_4_9.sh

或:sudo sh opencv2_4_10.sh

最终出现OpenCV ready to be used(表示成功)

接下来,编译caffe # cd ~/caffe

# sudo cp Makefile.config.example Makefile.config # make all

至此,caffe安装完成。

3. 安装python所需要的各种依赖

Cython>=0.19.2 numpy>=1.7.1 scipy>=0.13.2

scikit-image>=0.9.3 matplotlib>=1.3.1 ipython>=3.0.0 h5py>=2.2.0 leveldb>=0.191 networkx>=1.8.1 nose>=1.3.0 pandas>=0.12.0

python-dateutil>=1.4,<2 protobuf>=2.5.0 python-gflags>=2.0 pyyaml>=3.10 Pillow>=2.3.0 six>=1.1.0

可以尝试采用如下命令安装上述库文件,但是没有验证过: sudo pip install -r ./python/requirements.txt

2

如果没有pip需要先安装下pip:sudo apt install python-pip

安装好上述python的依赖之后重新对caffe进行编译。并且执行make pycaffe编译。编译好之后,在python环境下可以执行import caffe和import cv2功能。如果python可以顺利导入这两个库,则说明安装成功,否则安装失败。

4. 安装nvidia显卡驱动

这里要尤其注意,安装显卡驱动要先切换到文字界面,(按Ctrl+Alt+F1~F6).所以,启动电脑后,先进入文字界面。从recovery mode进入Ubuntu之后,crtl+alt+F1可进入命令行模式(tty)。crtl+alt+F7可退出命令行模式。

首先改变驱动程序的文件属性为可执行文件。 $ chmod a+x /home/username/NVIDIA.run

当输入安装指令时,不要简单地输入 sudo ./....run,而是输入: sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files -no-x-check:安装驱动时关闭X服务

-no-nouveau-check:安装驱动时禁用nouveau

-no-opengl-files:只安装驱动文件,不安装OpenGL文件 这样再reboot,就不会出现循环登录的问题。

注意:这里的NVIDIA.run代表包含具体的从NVIDIA官网下载的驱动的版本号。上述指令可以避免显卡安装之后的循环登录问题。

如果在安装时直接输入安装指令,则会在登录界面输入密码后依然跳转回登陆界面,无限循环,这是我在使用.run文件安装时遇到的问题,上述安装指令是一个亲测有效的解决方案。

有时在安装nvidia显卡之前,可能需要卸载已有的显卡驱动。删除以前激活的显卡驱动或者旧版本的nvidia官方驱动,在终端中输入如下命令: sudo apt-get –purge remove nvidia-*

sudo apt-get remove --purge nvidia-331-updates

如果安装的是官网下载的驱动, 则重新运行run文件来卸载 sh ./nvidia.run –uninstall

5. 安装nvidia显卡驱动2

1. 删除之前安装的nvidia驱动,运行 sudo apt-get purge nvidia-* 2. 删除已有驱动也可用sudo apt-get autoremove nvidia-* 命令 3.

2. 添加第三方驱动源,运行 sudo add-apt-repository ppa:graphics-drivers/ppa 或者 sudo apt-add-repository ppa:xorg-edgers/ppa

3. 更新源,运行 sudo apt-get update

4. 查询nvidia驱动可用版本,运行sudo apt-cache search nvidia-* 查询相应版本 4. 安装驱动,运行 sudo apt-get install nvidia-367

6. 安装cuda

可参考nvidia公司官网的NVIDIA CUDA INSTALLATION GUIDE FOR LINUX.pdf进行安装。

3

(1) 修改gcc/g++版本(这一步似乎不执行也能使得cuda正常运行) 由于cuda8不支持gcc/g++5以后的版本,所以需要做以下更改。

改变系统默认的gcc/g++编译器版本,换成gcc/g++-5

1. 2. 3. 4.

sudo su

cd ../../usr/bin

ln -s /usr/bin/g++-5 /usr/bin/g++ -f ln -s /usr/bin/gcc-5 /usr/bin/gcc -f

这样,gcc就默认成gcc-5,g++也默认成g++-5了。

(2) 下载cuda包后执行以下命令:

1 sudo chmod 777 cuda_8.0.44_linux.run 2 sudo ./cuda_8.0.44_linux.run

注意:执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia367驱动时,一定要选择否:

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?

因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。其余的都直接默认或者选择是即可。

(3) 环境变量配置

打开~/.bashrc文件: sudo gedit ~/.bashrc 将以下内容写入到~/.bashrc尾部:

1 export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} 2 export

LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

激活环境变量设置:source ~/.bashrc

(4) 添加环境变量(如果已执行(3),则本步骤可不执行)

编辑计算机文件夹下的/etc/profile,加入CUDA环境变量(下面的2,3句),保存。 1. sudo gedit /etc/profile 2. export PATH=/usr/local/cuda/bin:$PATH 保存后执行下面的命令,使其生效: 1. source /etc/profile

同时,进入/etc/ld.so.conf.d/文件夹,执行下面的命令,新建一个名为cuda.conf的文件。 1. sudo gedit cuda.conf 然后在文件中写入如下内容: 1. /usr/local/cuda/lib64

保存后执行下面的命令,使其生效。 1. sudo ldconfig (5) Build CUDA Sample

进入usr/local/cuda/samples,然后build samples,命令如下: 1. sudo make all -j8

在执行完之后,进入samples/bin/x86_64/linux/release目录下,在终端执行查询命令: 1. ./deviceQuery

如果返回了你电脑显卡的信息,且结尾有Result=PASS,则表示安装成功,否则,建议重启电脑之后再次尝试查询命令。

4

(6) 测试CUDA的samples

1 cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery 2 make

3 sudo ./deviceQuery

如果显示一些关于GPU的信息,则说明安装成功。

(7) Qustion2 and Answer2: (a) 问题1

进行上述检测后,如果输入nvcc –version命令后出现nvcc没有安装或\directory\等问题,则采用以下措施:

Your PATH environment variable is not set up correctly. Ensure that your PATH includes the bin directory where you installed the Toolkit, usually /usr/local/cuda-8.0/bin. 1. $ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} (b) 问题2 nvcc -V 问题是

The program 'nvcc' is currently not installed. You can install it by typing: sudo apt-get install nvidia-cuda-toolkit

但是我们已经安装了cuda,在 /usr/local 能够看到文件夹 cuda-7.5。 这需要如下设置 执行sudo gedit ~/.bashrc,在最后面,64位的话粘贴以下内容: export PATH=/usr/local/cuda-7.5/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH 接着执行 source ~/.bashrc 使其立即生效 下面查询 nvcc -V

可见如下结果

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2015 NVIDIA Corporation

5

安装nvidia driver,如果网速度不好,可能要花比较长的时间 安装完成后重启

sudo apt-get install nvidia-378 sudo reboot

重启系统后,执行下面的命令查看驱动的安装状态显示安装成功 sudo nvidia-smi sudo nvidia-setting

安装NVIDIA驱动后,登录死机现象再没出现,一切正常了。 (10) 注意

当BIOS中Secure Boot设置为disable,正安装NVIDIA driver后,如果再将Secure Boot设置为enable,再启动ubuntu则NVIDIA driver则不会工作。 具体原因,参见这篇文章

《UEFI、BIOS、Secure Boot的关系和知识介绍》

11

如果要在安全启动模式下安装NVIDIA driver,有点麻烦,我没有再尝试,参见这篇文章应该会有帮助:

《Linux secure boot(安全启动)时添加Nvidia显卡驱动》 (11) 参考文章

《ubuntu16.04 NVIDIA显卡驱动安装》 《Ubuntu 16.04 nvidia安装》

10. 附录

(1) 安装cuda8.0

进入cuda_8.0.61_375.26_linux.run所在目录 执行:

$sudo chmod +x cuda_8.0.61_375.26_linux.run $sudo ./ cuda_8.0.61_375.26_linux.run

按q键退出RELU文档,按照如下选择,显卡驱动一定要选n,不装 其他都默认yes

最后,配置环境变量,直接放在系统配置文件profile里面: $sudo gedit /etc/profile 在最后面加入两行代码:

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

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH 保存退出.

执行:$sudo ldconfig

(2) 检查是否安装成功 $nvcc –version

查看CUDA ,应该显示8.0,如果没有添加path会显示系统之前的版本 $nvidia-smi 查看驱动信息

在根目录下会出现NVIDIA_CUDA-8.0_Samples,打开终端,进入该目录: $sudo make –j8 #编译samples,我电脑8线程,全开编译 等待2分钟左右,编译完成,执行下条指令: $sudo ./1_Utilities/deviceQuery/deviceQuery

出现提示显卡驱动版本等信息的内容,表示安装成功。

12

(3) Atlas安装

sudo apt-get install libatlas-base-dev

8888888888888888888888888888888888888888888888888888888888888888888888888

Ubuntu16.04 Caffe 安装步骤记录(超详尽)

2017年05月19日 19:09:11 阅读数:94695

历时一周终于在 ubuntu16.04 系统成功安装 caffe 并编译,网上有很多教程,但是某些步骤并没有讲解详尽,导致配置过程总是出现各种各样匪夷所思的问题,尤其对于新手而言更是欲哭无泪,在我饱受折磨后决定把安装步骤记录下来,尽量详尽清楚明白,避免后来小白重蹈覆辙。

安装硬件: intel i5 + NVIDIA 740 M

安装流程细分为如下10个步骤,细化步骤粒度更易避免出错: 1、安装依赖包 2、禁用 nouveau 3、配置环境变量 4、下载 CUDA 8.0 5、安装 CUDA 8.0

6、验证 CUDA 8.0 是否安装成功 7、安装 cudnn 8、安装 opencv3.1

sudo apt-get install python-opencv sudo pip3 install opencv-python so “import cv2” is enabled. 9、安装 caffe

13

10、安装 pycaffe notebook 接口环境

第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-essential123456789

有一定几率安装失败而导致后续步骤出现问题,所以要确保以上依赖包都已安装成功,验证方法就是重新运行安装命令,如验证 git cmake build-essential是否安装成功共则再次运行以下命令:

sudo apt-get install git cmake build-essential 1

界面提示如下则说明已成功安装依赖包,否则继续安装直到安装成功。

yhao@yhao-X550VB:~$ sudo apt-get install git cmake build-essential 正在读取软件包列表... 完成

正在分析软件包的依赖关系树 正在读取状态信息... 完成

build-essential 已经是最新版 (12.1ubuntu2)。 cmake 已经是最新版 (3.5.1-1ubuntu3)。 git 已经是最新版 (1:2.7.4-0ubuntu1.1)。

14

下列软件包是自动安装的并且现在不需要了:

lib32gcc1 libc6-i386

使用'sudo apt autoremove'来卸载它(它们)。

升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 94 个软件包未被升级。1234567891011

第2步 禁用 nouveau

安装好依赖包后需要禁用 nouveau,只有在禁用掉 nouveau 后才能顺利安装 NVIDIA 显卡驱动,禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 文件中添加一条禁用命令,首先需要打开该文件,通过以下命令打开:

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf1

打开后发现该文件中没有任何内容,写入:

blacklist nouveau option nouveau modeset=0 1

保存时命令窗口可能会出现以下提示:

** (gedit:4243): WARNING **: Set document metadata failed: 不支持设置属性 metadata::gedit-position 12

无视此提示~,保存后关闭文件,注意此时还需执行以下命令使禁用 nouveau 真正生效:

sudo update-initramfs -u1

第3步 配置环境变量

同样使用 gedit 命令打开配置文件:

sudo gedit ~/.bashrc 12

15

打开后在文件最后加入以下两行内容:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH 123

保存退出。

第4步 下载 CUDA 8.0

进入 https://developer.nvidia.com/cuda-downloads ,依次选择 CUDA 类型然后下载即可。

第5步 安装 CUDA 8.0

第四步下载的1.4G的 CUDA中包含有 nvidia 显卡驱动,故此步骤 CUDA 的安装包括了 nvidia 显卡驱动的安装,此时注意你是否已经安装过 nvidia 显卡驱动,若无法保证已安装的

16

nvidia 显卡驱动一定正确,那就卸载掉之前安装的 nvidia 显卡驱动(卸载方法链接),然后开始安装 CUDA 8.0;若可以保证已安装正确的 nvidia 显卡驱动,则直接开始安装 CUDA 8.0,在安装过程中选择不再安装 nvidia 显卡驱动。

为了方便开始安装过程的路径查找,把下载的 CUDA 安装文件移动到 HOME 路径下,然后通过 Ctrl + Alt + F1 进入文本模式,输入帐号密码登录,通过 Ctrl + Alt + F7 可返回图形化模式,在文本模式登录后首先关闭桌面服务:

sudo service lightdm stop1

然后通过 Ctrl + Alt + F7 发现已无法成功返回图形化模式,说明桌面服务已成功关闭,注意此步对接下来的 nvidia 驱动安装尤为重要,必需确保桌面服务已关闭。

Ctrl + Alt + F1 进入文本模式,然后运行 CUDA 安装文件进行安装,之前我们已经把 CUDA 安装文件移动至 HOME,直接通过 sh 命令运行安装文件即可:

sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs1

其中 cuda_8.0.61_375.26_linux.run 是我的 CUDA 安装文件名,而你需替换为自己的 CUDA 安装文件名,若此时忘记可直接通过 ls 文件查看文件名,这也是我建议把 CUDA 安装文件移动到 HOME 下的另一个原因。

执行此命令约1分钟后会出现 0%信息,此时长按回车键让此百分比增长,直到100%,然后按照提示操作即可,先输入 accept ,然后让选择是否安装 nvidia 驱动,这里的选择对应第5步开头,若未安装则输入 “y”,若确保已安装正确驱动则输入“n”。

剩下的选择则都输入“y”确认安装或确认默认路径安装,开始安装,此时若出现安装失败提示则可能为未关闭桌面服务或在已安装 nvidia 驱动的情况下重复再次安装 nvidia 驱动,安装完成后输入重启命令重启:

reboot1

重启后登录进入系统,配置 CUDA 环境变量,与第3步相同,使用 gedit 命令打开配置文件:

sudo gedit ~/.bashrc1

在该文件最后加入以下两行并保存:

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

17

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH123

使该配置生效:

source ~/.bashrc1

第6步 验证 CUDA 8.0 是否安装成功

分别执行以下命令:

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery sudo make

./deviceQuery12345

若看到类似以下信息则说明 cuda 已安装成功:

./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s) Device 0: \

CUDA Driver Version / Runtime Version 8.0 / 8.0 CUDA Capability Major/Minor version number: 3.5

Total amount of global memory: 2004 MBytes (2100953088 bytes) ( 2) Multiprocessors, (192) CUDA Cores/MP: 384 CUDA Cores GPU Max Clock rate: 1032 MHz (1.03 GHz) Memory Clock rate: 800 Mhz

18

Memory Bus Width: 64-bit L2 Cache Size: 524288 bytes

Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32

Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024

Max dimension size of a thread block (x,y,z): (1024, 1024, 64)

Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes

Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: No Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes

19

Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode:

< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GT 740M Result = PASS

第7步 安装 cudnn

登录官网:https://developer.nvidia.com/rdp/cudnn-download ,下

载对应 cuda 版本且 linux 系统的 cudnn 压缩包,注意官网下载 cudnn 需要注册帐号并登录,不想注册的可从我的网盘下载:https://pan.http://www.wodefanwen.com//s/1c2xPVzy

20

下载完成后解压,得到一个 cudn 文件夹,该文件夹下include 和 lib64 两个文件夹,命令行进入 cudn/include 路径下,然后进行以下操作:

sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件1

然后命令行进入 cudn/lib64 路径下,运行以下命令:

sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库

cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件 sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软衔接 sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接1234

这里需要注意第三行命令,网上有人的第三行命令为:

sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接1

起初我执行的也是上条链接 libcudnn.so.5.1.5 的命令,但是后面编译caffe时出错,报错内容为 /usr/bin/ld: 找不到 -lcudnn,所以这里需要先查看一下自己应该链接的是 libcudnn.so.5.1.10 还是 libcudnn.so.5.1.5 ,查看方法为下:

locate libcudnn.so1

我执行完后显示如下:

yhao@yhao-X550VB:~$ locate libcudnn.so /home/yhao/.local/share/Trash/files/libcudnn.so /home/yhao/.local/share/Trash/files/libcudnn.so.5 /home/yhao/.local/share/Trash/files/libcudnn.so.5.1.10 /home/yhao/.local/share/Trash/files/cuda/lib64/libcudnn.so /home/yhao/.local/share/Trash/files/cuda/lib64/libcudnn.so.5 /home/yhao/.local/share/Trash/files/cuda/lib64/libcudnn.so.5.1.10

21

/home/yhao/.local/share/Trash/info/libcudnn.so.5.1.10.trashinfo /home/yhao/.local/share/Trash/info/libcudnn.so.5.trashinfo /home/yhao/.local/share/Trash/info/libcudnn.so.trashinfo /home/yhao/cuda/lib64/libcudnn.so /home/yhao/cuda/lib64/libcudnn.so.5 /home/yhao/cuda/lib64/libcudnn.so.5.1.10 /usr/local/lib/libcudnn.so

/usr/local/lib/libcudnn.so.5123456789101112131415

可以看到我的文件是 libcudnn.so.5.1.10 ,并没有 libcudnn.so.5.1.5,所以第三行命令我链接的是 libcudnn.so.5.1.10 ,这里第三行链接命令视你的查看结果而定。

安装完成后可用 nvcc -V 命令验证是否安装成功,若出现以下信息则表示安装成功:

yhao@yhao-X550VB:~$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2016 NVIDIA Corporation Built on Tue_Jan_10_13:22:03_CST_2017 Cuda compilation tools, release 8.0, V8.0.6112345

第8步 安装 opencv3.1

进入官网 : http://opencv.org/releases.html , 选择 3.1.0 版本的 source , 下载 opencv-3.1.0.zip

22

解压到你要安装的位置,命令行进入已解压的文件夹 opencv-3.1.0 目录下,执行:

mkdir build # 创建编译的文件目录 cd build

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. make -j8 #编译 12345678

在执行 make -j8 命令编译到 92% 时可能会出现以下错误:

modules/cudalegacy/src/graphcuts.cpp:120:54: error:

‘NppiGraphcutState’ has not been declared

typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppState, Npp8u* pDeviceMem);1234

这是由于opecv3.1与cuda8.0不兼容导致的。解决办法:

23

修改 /opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp 文件内容,如图:

编译成功后安装:

sudo make install #安装1

安装完成后通过查看 opencv 版本验证是否安装成功:

pkg-config --modversion opencv 1

第9步 安装 caffe

首先在你要安装的路径下 clone :

git clone https://github.com/BVLC/caffe.git1

进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :

sudo cp Makefile.config.example Makefile.config1

复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。

然后修改 Makefile.config 文件,在 caffe 目录下打开该文件:

sudo gedit Makefile.config1

修改 Makefile.config 文件内容:

24

1.应用 cudnn

#USE_CUDNN := 1 修改成:

USE_CUDNN := 11234

2.应用 opencv 版本

#OPENCV_VERSION := 3 修改为:

OPENCV_VERSION := 31234

3.使用 python 接口

#WITH_PYTHON_LAYER := 1 修改为

WITH_PYTHON_LAYER := 11234

4.修改 python 路径

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

25

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial 12345

这里贴出 我的Makefile.config文件 方便大家参考 然后修改 caffe 目录下的 Makefile 文件:

将:

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 替换为:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)1234 将:

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_serial1234

然后修改 /usr/local/cuda/include/host_config.h 文件 :

#error-- unsupported GNU version! gcc versions later than 4.9 are not supported! 改为

//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!1234

OK ,可以开始编译了,在 caffe 目录下执行 :

make all -j81

这是如果之前的配置或安装出错,那么编译就会出现各种各样的问题,所以前面的步骤一定要细心。

编译成功后可运行测试:

26

sudo make runtest -j81

如果显示结果为上图所示,则表示 caffe 已经成功安装。

10、安装 pycaffe notebook 接口环境

在上一步成功安装 caffe 之后,就可以通过 caffe 去做训练数据集或者预测各种相关的事了,只不过需要在命令行下通过 caffe 命令进行操作,而这一步 pycaffe 的安装以及 notebook 环境配置只是为了更方便的去使用 caffe ,实际上大多数都是通过 python 来操作 caffe 的,而 notebook 使用浏览器作为界面,可以更方便的编写和执行 python 代码。 首先编译 pycaffe :

cd caffe

sudo make pycaffe -j8123

以下是我编译 pycaffe 时出现的错误:

python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 没有那个文件或目录1

解决方法:

27

sudo apt-get install python-numpy1

此外也可能是由于 Makefile.config 文件中 python 路径设置错误出现的错误,可根据上一步检查一下,也可能出现别的错误,百度谷歌之~

编译 pycaffe 成功后,验证一下是否可以在 python 中导入 caffe 包,首先进入 python 环境:

python1

然后导入 caffe :

>>> import caffe1

若不报错则表示 caffe 的 python 接口已正确编译,但是应该不会那么顺利,以下是我导入 caffe 时出现的错误: 错误1:

File \, line 1, in ImportError: No module named caffe1

解决方法:

sudo echo export PYTHONPATH=\ >> ~/.bashrc source ~/.bashrc123

错误2:

ImportError: No module named skimage.io1

解决方法:

pip install -U scikit-image #若没有安装pip: sudo apt install python-pip1

ok,最后一步,配置notebook环境

首先要安装python接口依赖库,在caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,按照这个清单安装就可以了。

在安装scipy库的时候,需要fortran编译器(gfortran),如果没有这个编译器就会报错,因此,我们可以先安装一下。

28

首先进入 caffe/python 目录下,执行安装代码:

sudo apt-get install gfortran

for req in $(cat requirements.txt); do sudo pip install $req; done123

安装完成以后执行:

sudo pip install -r requirements.txt1

就会看到,安装成功的,都会显示Requirement already satisfied, 没有安装成功的,会继续安装。

然后安装 jupyter :

sudo pip install jupyter1

安装完成后运行 notebook :

jupyter notebook

ipython notebook12345

就会在浏览器中打开notebook, 点击右上角的New-python2, 就可以新建一个网页一样的文件,扩展名为ipynb。在这个网页上,我们就可以像在命令行下面一样运行python代码了。输入代码后,按shift+enter运行,更多的快捷键,可点击上方的help-Keyboard shortcuts查看,或者先按esc退出编辑状态,再按h键查看。

29

为心仪公司折腾DL许久然而并无缘~ 加油。 参考文章:

http://www.cnblogs.com/denny402/p/5088399.html

http://blog.csdn.net/sunpeng19960715/article/details/54835148

30

本文来源:https://www.bwwdw.com/article/v726.html

Top