安装编译Caffe-GPU & 升级源码里的cudnn

Caffe原生版本下载地址https://github.com/BVLC/caffe 。后面开发者根据自己需要添加的功能,会在原生caffe文件夹里添加自己的layer,变成衍生版的caffe。一台电脑里可以同时安装多个版本的caffe,如原生caffe, caffe-enet, caffe-segnet等,只需要放在不同的文件夹,分别进行编译即可。卸载只需要删除相应的文件夹即可。具体安装步骤:

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 update
sudo apt-get upgrade

若使用python接口,还需要安装caffe/python/requirements.txt文件里需要的依赖项。conda list查看已经安装的包后发现缺少的包并安装:

conda install leveldb
conda install protobuf

 

2、Makefile.config文件的修改:

Shortcut: 链接中下载已经修改好的makefile.config文件 https://download.csdn.net/download/cxiazaiyu/10635167 ,放在caffe路径下即可。

普通方法:按照下面的操作一一修改。

sudo cp Makefile.config.example Makefile.config

sudo gedit Makefile.config

根据自己的情况,将如下项前的#去除:

# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1

# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3

# Uncomment to support layers written in Python (will link against Python libs)
WITH_PYTHON_LAYER := 1

若使用anaconda,则下面的部分也注释掉:

# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.

ANACONDA_HOME := $(HOME)/anaconda3
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
          $(ANACONDA_HOME)/include/python3.6m \
          $(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include \

# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib

# Uncomment to use Python 3 (default is Python 2)
PYTHON_LIBRARIES := boost_python3 python3.6m

 

并在文件末尾加上:

LINKFLAGS := -Wl,-rpath,$(HOME)/anaconda3/lib

注意:用anaconda的话不要再把下面的部分取消注释啦!!!

# Uncomment to use Python 3 (default is Python 2)
#PYTHON_INCLUDE := /usr/include/python3.5m \
#                 /usr/lib/python3.5/dist-packages/numpy/core/include \

 

    # Whatever else you find you need goes here.

      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

参考:Dark_Miro的博客:caffe编译安装( Ubuntu16.04.3+cuda8.0+opencv3.3.0+anaconda3)xunan003的博客: caffe利用anaconda配置python接口(cpu版可视化工具)

3、Makefile文件的修改:

sudo gedit Makefile

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

   改成:

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

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改成:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui

4、Caffe根目录下的python文件夹加入到环境变量:

sudo gedit ~/.bashrc

在文件末尾加入(文件路径根据自己的情况确定):

export PYTHONPATH=/home/yly/ENet/caffe-enet/python:$PYTHONPATH

更新配置:

sudo ldconfig

 

5、编译caffe:

若曾经编译失败过,想重新编译,需要先执行:

    sudo make clean 

 然后执行:

make pycaffe -j$(nproc)
make all -j$(nproc) -Wno-deprecated-gpu-targets
make test -j$(nproc) -Wno-deprecated-gpu-targets
make runtest -j$(nproc) -Wno-deprecated-gpu-targets

其中-j$(nproc)表示使用最大可利用的多线程执行,一般6核cpu可以直接写-j12。这里若在make pycaffe前加入sudo 可能报错。

若显示PASSED则安装成功。

注意:本文是使用makefile方式进行编译的,也可以使用cmake编译,二者选一种即可。

参考: Ryan的博客:环境配置5-Ubuntu下安装Caffe和YOLOyhao的博客: Ubuntu16.04 Caffe 安装步骤记录(超详尽)
 


 

6、升级源码里的cudnn:

很多时候遇到开源代码是基于旧版本的cudnn开发的(cudnn2,cudnn5.1等),而自己配置的环境是新版本的cudnn (cudnn6)。不可能总去根据代码修改cudnn的配置环境,这种情况下可以升级caffe源码里的cudnn文件,即通过github下载新版本的caffe,用里面的cudnn相关文件替换旧版本caffe源码里cudnn文件。具体方法:

  • caffe/src/caffe/layers里所有的cudnn*.cu和cudnn*.cpp文件,如cudnn_lcn_layer.cu, cudnn_lrn_layer.cu, cudnn_conv_layer.cu, cudnn_lcn_layer.cpp等。
  • caffe/src/caffe/util里的cudnn.cpp
  • caffe/include/caffe/layers里所有的cudnn*.hpp文件,如cudnn_conv_layer.hpp, cudnn_deconv_layer.hpp等
  • caffe/include/caffe/util中的cudnn.hpp文件

7、Caffe编译可能遇到的bug及解决办法:

  • Cannot find -lboost_python3,建立软链接:
sudo ln -s  /usr/lib/x86_64-linux-gnu/libboost_python-py35.so  /usr/lib/x86_64-linux-gnu/libboost_python3.so 

具体libboost_python-py35.so中py后面的版本要根据自己文件下的版本修改。

  • fatal error: pyconfig.h: No such file or directory #include "pyconfig.h"

locate pyconfig.h发现在/usr/include/python2.7

将此位置加入到Makefile.config文件中的PYTHON_INCLUDE搜索路径中:

ANACONDA_HOME := $(HOME)/anaconda3
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
                  $(ANACONDA_HOME)/include/python2.7 \
                  $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
                  /usr/include/python2.7
  •  /anaconda3/lib/libpng16.so.16: undefined reference to 'inflateValidate@ZLIB_1.2.9' 

在Makefile.config加入

LINKFLAGS := -Wl,-rpath,$(HOME)/anaconda3/lib

  • 注意: 建议使用Cuda8.0+CuDNN6.0的版本,因为新版的caffe中说明了:cuDNN for GPU acceleration (v6)。

若使用Cuda8.0+CuDNN5.1的版本, 在make runtest 时会出现如下问题:

CuDNNDeconvolutionLayerTest/3.TestSimpleCuDNNDeconvolution
F0802 14:55:42.177832 22003 cudnn.hpp:128] Check failed: status == CUDNN_STATUS_SUCCESS (3 vs. 0)  CUDNN_STATUS_BAD_PARAM
*** Check failure stack trace: ***
    @     0x7f66be7be5cd  google::LogMessage::Fail()
    @     0x7f66be7c0433  google::LogMessage::SendToLog()
    @     0x7f66be7be15b  google::LogMessage::Flush()
    @     0x7f66be7c0e1e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f66b85fdd18  caffe::CuDNNDeconvolutionLayer<>::Reshape()
    @           0x483cf0  caffe::Layer<>::SetUp()
    @           0x6b4d3d  caffe::CuDNNDeconvolutionLayerTest_TestSimpleCuDNNDeconvolution_Test<>::TestBody()
    @           0x952603  testing::internal::HandleExceptionsInMethodIfSupported<>()
    @           0x94bc1a  testing::Test::Run()
    @           0x94bd68  testing::TestInfo::Run()
    @           0x94be45  testing::TestCase::Run()
    @           0x94d11f  testing::internal::UnitTestImpl::RunAllTests()
    @           0x94d443  testing::UnitTest::Run()
    @           0x47096d  main
    @     0x7f66b783b830  __libc_start_main
    @           0x4788c9  _start
    @              (nil)  (unknown)
Makefile:532: recipe for target 'runtest' failed

同样的问题也出现在: https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/10

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 安装caffe-ssd-gpu在ubuntu18.04的步骤如下: 1. 安装CUDA:从Nvidia官网下载合适的CUDA安装包,按照官方文档的指引进行安装。 2. 安装依赖:运行以下命令安装所需依赖库: ``` sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev \ libopencv-dev libhdf5-serial-dev protobuf-compiler \ libgflags-dev libgoogle-glog-dev liblmdb-dev libboost-all-dev ``` 3. 下载caffe-ssd-gpu源码编译:从Github上下载caffe-ssd-gpu源码,按照官方文档指引进行编译编译需要指定编译选项为GPU模式。 4. 运行测试:安装完成后,运行测试脚本,确保安装配置成功。 以上为简要步骤,具体操作请参考对应文档和官方指引。 ### 回答2: Ubuntu18.04是目前比较常见的Linux操作系统之一,而CAFFE-SSD-GPU是深度学习的一个工具。下面是安装caffe-ssd-gpu的步骤: 1. 安装CUDA和cuDNN 首先,您需要安装CUDA和cuDNN,这是运行深度学习框架所需的必备组件。下载安装CUDA和cuDNN之前,您需要查看您的图形卡的型号,以便选择正确的CUDA版本cuDNN版本。 在下载和安装CUDA和cuDNN之前,您需要在NVIDIA的开发者网站上注册自己,并下载适用于您机器的CUDA和cuDNN版本。此外,您还需要在命令行界面中设置以下环境变量: export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH 2. 安装依赖项 在安装caffe之前,需要安装一些依赖项。您可以使用以下命令将这些依赖项安装到您的Ubuntu系统上: sudo apt-get update sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml python-numpy python-scipy 3. 下载和安装CAFFE 现在,您需要在您的系统上下载和安装CAFFE。从github上获取caffesource代码并进行安装: git clone https://github.com/weiliu89/caffe.git cd caffe git checkout ssd 4. 编译安装CAFFE 使用以下命令编译安装caffe: cp Makefile.config.example Makefile.config make all -j $(($(nproc) + 1)) make pycaffe 执行该命令后,您需要等待一段间才能完成CAFFE编译。如果出现任何编译错误,请检查您的CUDA和cuDNN版本是否正确,并重新安装依赖项。 5. 使用CAFFE-SSD-GPU 现在,您已经成功地在Ubuntu18.04操作系统上安装编译CAFFE-SSD-GPU,您可以开始使用该工具来执行深度学习任务了。 总结 安装CAFFE-SSD-GPU需要充分理解linux的命令行操作。需要先确认CUDA和cuDNN已经安装,并正确设置环境变量。然后需要下载和安装CAFFE, 并最后编译安装CAFFE。在安装过程中如果存在问题,可以查看错误日志,重新检查步骤。如果对命令行操作不熟悉,则先学习linux基础操作。 ### 回答3: caffe-ssd-gpu是一种基于caffe框架的用于实现目标检测的神经网络模型,在Ubuntu18.04系统中安装caffe-ssd-gpu需要进行以下步骤: 1. 安装CUDA CUDA是NVIDIA公司推出的用于高性能计算的并行计算平台和编程模型,是使用GPU进行深度学习任务所必需的。在Ubuntu18.04上安装CUDA需要首先确认自己的显卡型号,并选择合适的CUDA版本进行安装。可以在NVIDIA官网上下载相应的CUDA安装包,也可以通过命令行方式进行安装。在安装过程中注意要按照提示完成相应的配置和设置。 2. 安装cuDNN cuDNN是用于深度神经网络的GPU加速库,也是必需的组件之一。在安装过程中同样需要确认CUDA的版本和自己的显卡型号,并下载相应的cuDNN安装包进行安装。 3. 安装依赖包 在安装caffe-ssd-gpu前需要先安装几个依赖包,包括protobuf、opencv、boost等。可以通过命令行方式进行安装,例如: ``` sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev ``` 4. 下载caffe-ssd-gpu源码 可以在GitHub上找到caffe-ssd-gpu源码,下载后解压到自己想要的目录下。 5. 编译安装caffe-ssd-gpu 进入caffe-ssd-gpu源码目录下,执行以下命令: ``` cd caffe-ssd-gpu mkdir build cd build cmake .. make all -j8 make install ``` 其中,make all -j8表示使用8个线程进行编译,提高编译速度。make install表示安装编译好的caffe-ssd-gpu库文件和可执行文件。 6. 测试安装是否成功 可以尝试运行caffe-ssd-gpu自带的测试程序,检查安装是否成功。在源码目录下执行以下命令: ``` ./build/tools/caffe time --model=models/VGGNet/VOC0712/SSD_300x300_ft/deploy.prototxt --gpu=0 ``` 这条命令会测试caffe-ssd-gpuGPU上执行推断的速度,如果没有问题,则说明安装成功。 需要注意的是,在安装过程中可能会遇到各种问题,例如依赖包的版本不兼容、CUDA和cuDNN的配置出错等等。这候需要耐心调试错误,逐个解决问题,才能确保caffe-ssd-gpu能够正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuyuelongfly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值