ubuntu安装配置caffe-ssd gpu版本,配置cuda和cudnn

写在前面:电脑联想Y410,显卡755,ubuntu16.04,本文是caffe-ssd,没有安装anaconda,使用的python是系统自带的2.7版本,以前安装anaconda后两种python版本管理不好会出错

1、将gcc版本降低

cuda8.0对应的gcc版本是5.3以下,ubuntu16.04的gcc版本是5.4

查看gcc版本:gcc --version 

参考链接:https://blog.csdn.net/iotlpf/article/details/54175064

2、nvidia显卡驱动安装

方法一:直接在系统设置下安装


可能存在的问题:驱动的版本和自己电脑显卡对应的版本不一致,会导致后续安装的问题。

方法二:在nvidia官网下载对应驱动安装

方法三:添加源进行安装

注意:查询自己电脑显卡对应的驱动链接:www.nvidia.cn/download/index.aspx?lang=cn

一定要下载正确的驱动,否则可能后续的安装会有很多问题



具体安装方法参考链接:https://blog.csdn.net/iotlpf/article/details/54175064

3、安装cuda8.0

cuda的安装也可以看下自己的电脑适合的cuda版本:在windows下nvidia控制面板,图形显示,可以看到n卡适合的cuda版本,仅供参考。

如何查看显卡支持的CUDA版本:https://blog.csdn.net/wangyjfrecky/article/details/55100963

cuda安装参考:https://blog.csdn.net/yhaolpz/article/details/71375762

在进行测试时出现的错误:

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

cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL

解决方案:查看自己电脑安装的nvidia显卡版本是否正确,不清楚具体使用哪个就多安装几个版本试下。

cuda安装成功运行结果:


可参考链接:https://zhuanlan.zhihu.com/p/28954367

4、安装cudnn5.1

cudnn5.1的安装主要参考教程 : https://blog.csdn.net/yhaolpz/article/details/71375762

和上链接博主不同的是,在locate时并没有定位到信息,不过后面貌似没影响。

具体操作如下:

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

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

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

sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/ sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
注意:如不能删除请cd到 
cd /usr/local/cuda/lib64/下进行删除
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

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

 
  
 
5、安装opencv3.1

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

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

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

cd build

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

make -j8 #编译

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

modules/cudalegacy/src/graphcuts.cpp:120:54: error: 
‘NppiGraphcutState’ has not been declared
typedef NppStatus (*init_func_t)(NppiSize oSize, 

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


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



编译成功后安装:

 
  
sudo make install #安装

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

pkg-config --modversion opencv  
6、安装caffe-ssd

git clone https://github.com/weiliu89/caffe.git

cd caffe

git checkout ssd(出现“分支”则说明copy-check成功)


cp Makefile.config.example Makefile.config

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

 
 
sudo gedit Makefile.config

修改 Makefile.config 文件内容:


1.应用 cudnn

#USE_CUDNN := 1修改成: USE_CUDNN := 1

2.应用 opencv 版本

#OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3

3.使用 python 接口

 
   
  #WITH_PYTHON_LAYER := 1  
  修改为 WITH_PYTHON_LAYER :=  
  1 
  
 
  

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
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial     

然后修改 caffe 目录下的 Makefile 文件:

将#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!

Makefile文件中第260行左右添加boost_regex,即

LIBRARIES += boost_thread stdc++后,如下

LIBRARIES += boost_thread stdc++ boost_regex

继续在makefile文件下操作:

将:

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替换为:

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

编辑/usr/local/cuda/include/host_config.h 将其中的第115行注释掉:

#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!

将一些文件复制到/usr/local/lib文件夹下,解决"libcudart.so.8.0 cannot openshared object file: Nosuch fileor directory":

#注意自己CUDA的版本号!

sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0

&& sudo ldconfig cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0

&& sudo ldconfig cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

可能会有一点问题,但不影响,有的教程没用这步,我是一开始使用其他的教程报错使用的这步,参考:https://blog.csdn.net/qq_36673141/article/details/78428702

 
 

至此前期环境配置应该完成。

编译caffe有两种方式:

1、make all

2、cmake方式

我是使用make all编译成功的,以前看教程据说cmake更好,两种方式分别如下:

a、make all

        make all -j8
sudo make runtest -j8
注意:我在另一台电脑上用sudo make runtest -j8报错 使用make runtest -j8就好了;
.build_release/tools/caffe: error while loading shared libraries: libcudart.so.8.0:
cannot open shared object file: No such file or directory」
  • b、cmake
  • 本人用了一下报错没有修改,但这种编译官网上是有的,所有可以参考,前提是前面的环境配置正确。
  • cd caffe
    mkdir build
    cd build

    sudo cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="5.3" -D CUDA_ARCH_PTX="" -D WITH_GSTREAMER=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

    make -j8
    make install
    make runtest(这一步不是必须的)



  • 7、安装 pycaffe notebook 接口环境

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

cd caffesudo make pycaffe -j8

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

 
 

python

然后导入 caffe :

>>> import caffe
 
 

如果没有报错只是警告可以继续操作。

可能错误1:

File "<stdin>", line 1, in <module>   ImportError: No module named caffe

解决方法:

 
 

sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc

source ~/.bashrc

最后一步,配置notebook环境

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

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

sudo apt-get install gfortranfor req in $(cat requirements.txt);

do pip install $req; done

注意:此处安装依赖项可能一次无法全部安装,多进行几次就可以,我安装时出现错误,按照提示升级了一下pip到10.0,貌似版本太高了,会报错

File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main

我重新安装了9.1,运行后就可以了:https://blog.csdn.net/jasonzzj/article/details/53341271

在import caffe时也出现了 ImportError: cannot import name cbook错误

解决方案:

卸载之前的matplotlib: 

sudo pip uninstall matplotlib

使用该命令重新安装:

sudo apt-get install python-matplotlib

这样就解决了

安装完成以后执行:

sudo pip install -r requirements.txt

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

然后安装 jupyter :

sudo pip install jupyter

安装完成后运行 notebook :

 
 jupyter notebook 
 

安装小结:

1、前期环境配置时最重要的,首先是NVIDIA显卡,其次是cuda,之后是cudnn,每次安装好一定要测试

2、查清楚自己需要安装什么类型的显卡,文中有链接,以及cuda和cudnn的对应。

3、前期的依赖项一定多找几个教程多安装一些,(安装全一些)多装了没事,少装了后面报错可能找不到方案解决。(个人意见)

4、编译caffe之前保证opencv在系统环境里(安装opencv后的操作),编译caffe时对makefile文件和config文件改写仔细

5、编译caffe一般都会报错,仔细检查下问题出现在哪里,如果确保前期工作没问题,尝试用cmake 或者make all分别编译,出错了之后一定记得make clean

6、在编译时候有的需要权限,有的不需要权限,所以也可以尝试下分别sudo和不带sudo进行操作。

7、以上纯属瞎扯,谨慎参考。

参考链接:

1、https://blog.csdn.net/yhaolpz/article/details/71375762

2、https://blog.csdn.net/qq_36673141/article/details/78428702

3、https://blog.csdn.net/qq_36673141/article/details/78428702

猜你喜欢

转载自blog.csdn.net/qq_39703045/article/details/80156801
今日推荐