和Caffe安装流程一样,CUDA,cudnn, OpenCV

网上有很多,请参考实验室巨佬杰作 https://github.com/Mannix1994/SfSNet-Python/blob/master/build-caffe-matlab.md

本人机器 Ubuntu1804 + RTX2080 + NVIDIA-430 + CUDA-10.1 + cudnn7.5 + 自带opencv 3.2 + 自带 python 3.6 编译成功

注意事项

1. OpenCV4默认取消pkgconfig文件夹的生成

遇到一个不相关的问题,opencv4安装的时候,会有个pkgconfig文件夹不存在,可以在cmake的时候加一句

-D OPENCV_GENERATE_PKGCONFIG=YES

参考 https://blog.csdn.net/u013187057/article/details/88806761

2. 编译caffe,自带cudnn版本较低

出现错误

/home/wilson/Soft/PSPNet/include/caffe/common.cuh(9): error: function "atomicAdd(double *, double)" has already been defined

解决方法

打开对应文件夹

// Copyright 2014 George Papandreou#ifndef CAFFE_COMMON_CUH_
#define CAFFE_COMMON_CUH_#include <cuda.h>#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600#else// CUDA: atomicAdd is not defined for doublesstatic __inline__ __device__ double atomicAdd(double *address, double val) {unsignedlong long int* address_as_ull = (unsigned long long int*)address;unsignedlong longint old = *address_as_ull, assumed;if (val==0.0)return __longlong_as_double(old);do {assumed = old;old = atomicCAS(address_as_ull, assumed, __double_as_longlong(val +__longlong_as_double(assumed)));} while (assumed != old);return __longlong_as_double(old);}#endif
#endif

参考:忘记了

3. 自带版本cudnn较低

出现错误:

/home/wilson/Soft/PSPNet/include/caffe/util/cudnn.hpp(107): error: too few arguments in function call

解决办法:

1)将./include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现,即相应的cudnn.hpp. 
2)将./include/caffe/layers里的,所有以cudnn开头的文件,例如cudnn_conv_layer.hpp。 都替换成最新版的caffe里的相应的同名文件。 
3)将./src/caffe/layer里的,所有以cudnn开头的文件,例如cudnn_lrn_layer.cu,cudnn_pooling_layer.cpp,cudnn_sigmoid_layer.cu 都替换成最新版的caffe里的相应的同名文件。

参考:https://blog.csdn.net/lanseyuansu/article/details/72583045

4. HDF5安装不正确,或者未安装

a.

../lib/libcaffe.so.1.0.0-rc3:对‘H5LTget_dataset_ndims’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘Mat_VarFree’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTmake_dataset_double’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTmake_dataset_int’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTread_dataset_float’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTmake_dataset_float’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTread_dataset_double’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTmake_dataset_string’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘Mat_VarReadDataLinear’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘Mat_Open’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTread_dataset_int’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘Mat_VarCreate’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘Mat_CreateVer’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘Mat_VarWrite’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTfind_dataset’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘Mat_VarReadInfo’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘Mat_Close’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTget_dataset_info’未定义的引用
../lib/libcaffe.so.1.0.0-rc3:对‘H5LTread_dataset_string’未定义的引用

解决办法:

$ gunzip < hdf5-X.Y.Z.tar.gz | tar xf -   #解压缩
$ cd hdf5-X.Y.Z
$ ./configure --prefix=/usr/local/hdf5  #安装路径
$ make
$ make check                # run test suite.
$ make install
$ make check-install        # verify installation.

其中XYZ是版本号

参考:https://blog.csdn.net/luoying_1993/article/details/53228473

b.

In file included from src/caffe/util/hdf5.cpp:1:0:
./include/caffe/util/hdf5.hpp:6:18: 致命错误:hdf5.h:没有那个文件或目录

在你安装完成以后需要将libhdf5-serial-dev的位置添加在你的配置文件中方便他进行编译,我用的系统是ubuntu16,所以我的修改方式如下修改Makefile.config需要修改的内容:
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
 
完成后再次编译

5. error: #error This file requires compiler and library support for the ISO C++ 2011 standard.

Linux系统下解 决make时error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

#error This file requires compiler and library support \

的方法:

在CMakeLists.txt文件里的上方添加

SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")

可以解决这个问题

6. 对‘H5LXXX_dataset_ndims’未定义的引用

/build/lib/libcaffe.so:对‘H5LTget_dataset_ndims’未定义的引用
             build/lib/libcaffe.so:对‘H5LTread_dataset_int’未定义的引用
              build/lib/libcaffe.so:对‘H5LTfind_dataset’未定义的引用
            /build/lib/libcaffe.so:对‘H5LTmake_dataset_double’未定义的引用
            /build/lib/libcaffe.so:对‘H5LTmake_dataset_int’未定义的引用
           /build/lib/libcaffe.so:对‘H5LTread_dataset_float’未定义的引用
           /build/lib/libcaffe.so:对‘H5LTmake_dataset_float’未定义的引用
          /build/lib/libcaffe.so:对‘H5LTget_dataset_info’未定义的引用
         /build/lib/libcaffe.so:对‘H5LTread_dataset_string’未定义的引用
         /build/lib/libcaffe.so:对‘H5LTread_dataset_double’未定义的引用
          /build/lib/libcaffe.so:对‘H5LTmake_dataset_string’未定义的引用

解决方法: 打开py-faster-rcnn->caffe-fast-rcnn->cmake->Dependencies.cmake

在文件Dependencies.cmake添加一句,如下:

# ---[ HDF5
                   find_package(HDF5 COMPONENTS HL REQUIRED)
                   include_directories(SYSTEM ${HDF5_INCLUDE_DIRS} ${HDF5_HL_INCLUDE_DIR})
                   list(APPEND Caffe_LINKER_LIBS ${HDF5_LIBRARIES})
                   list(APPEND Caffe_LINKER_LIBS ${HDF5_HL_LIBRARIES})     #added

原文:https://blog.csdn.net/liuyan20062010/article/details/78258479

7. 如果使用cmake编译时可能会遇到以下错误

../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarFree'
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarReadDataLinear'
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_Open'
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarCreate'
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_CreateVer'
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarWrite'
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarReadInfo'
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_Close'

解决方法: 
下载FindMATIO.cmake.zip文件,解压缩后拷贝到./cmake/Modules目录中。 
文件下载路径:https://github.com/TheLegendAli/DeepLab-Context/files/453735/FindMATIO.cmake.zip 
并添加以下代码至./cmake/Dependencies.cmake文件中

find_package(MATIO REQUIRED)
include_directories(${MATIO_INCLUDE_DIR})
list(APPEND Caffe_LINKER_LIBS ${MATIO_LIBRARIES})

8. ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope

/home/wilson/Soft/PSPNet_caffe/PSPNet/src/caffe/layers/window_data_layer.cpp:290:42: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
         cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);
                                          ^~~~~~~~~~~~~~~~~~~

解决方法 try to replace CV_LOAD_IMAGE_COLOR with cv::IMREAD_COLOR

CV_LOAD_IMAGE_GRAYSCALE ---> cv::IMREAD_GRAYSCALE

9. CMake error with "CUDA_cublas_device_LIBRARY"

这个原因在于cuda10的版本更新丢弃了cublas_device,这个问题可以由更新cmake到最新 版本解决。

参考:https://stackoverflow.com/questions/52501760/c

make-error-while-installing-torch-in-ubuntu

10. 错误原因是caffe自带的库和Ubuntu的系统库之间发生了冲突,一言不和就废掉caffe的自带库,使用Ubuntu系统库

/opt/caffe-PSP/bin/caffe: symbol lookup error: /opt/caffe-PSP/bin/caffe: undefined symbol: _ZN5caffe3NetIfEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_5PhaseEPKS1_

可以通过 ldd ./matlab/+caffe/private/caffe_.mexa64 查看其依赖了那些动态库,将其增加到你的 LD_PRELOAD中,见caffe官网  http://caffe.berkeleyvision.org/tutorial/interfaces.html#matlab

这个要视具体目录而定,我这边写了个脚本,如下:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:/usr/local/cuda-10.1/lib64

参考:https://www.cnblogs.com/laiqun/p/6031925.html

PSPNet Caffe 编译安装相关推荐

  1. Caffe 编译安装

    From: http://caffe.berkeleyvision.org/installation.html 安装 安装前,最好阅读下面的安装指导并注意和你的系统平台相关的细节问题.我们已经在 Ub ...

  2. Windows+VS2013爆详细Caffe编译安装教程

    1. 安装cuda Cuda是英伟达推出的GPU加速运算平台 我这里安装的是cuda7.5,已经安装过的忽略,还没有安装过的这里有安装教程.windows下面安装还是非常简单的. 点击打开链接    ...

  3. cuda测试caffe编译安装

    4. 安装CUDA Sample 及 ATLAS 4.1 Build sample cd /usr/local/cuda/samples sudo make all -j8 我电脑是八核的,所以mak ...

  4. Ubuntu16.04 Caffe 编译安装步骤记录

    历时一周终于在 ubuntu16.04 系统成功安装 caffe 并编译,网上有很多教程,但是某些步骤并没有讲解详尽,导致配置过程总是出现各种各样匪夷所思的问题,尤其对于新手而言更是欲哭无泪,在我饱受 ...

  5. Ubuntu16.04+Cuda9.1+Cudnn7.5+Anaconda3(Python3.6)+opencv3.4.1+caffe编译安装(多坑已排!)

    我第一次装ubuntu16.04的时候由于是小白,分区的时候分的不合理,所以空间不够用了,索性重装了一次,装ubuntu16.04双系统这里不再赘述,可参考文章 https://blog.csdn.n ...

  6. linux下caffe-gpu的编译安装

    服务器的环境 Ubuntu18.04, python3.6 CUDA 10.0, cuDNN 7.6.3 opencv3.4.6 查看cuda和cudnn版本 nvcc -V cat /usr/loc ...

  7. Elam的caffe笔记之配置篇(一):CentOS6.5编译安装gcc4.8.2

    配置要求: 系统:centos6.5 目标:基于CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6接口的caffe框架 gcc是linux编译安装必备的编译器 CentOS6. ...

  8. caffe-yolov3:编译安装报错:fatal error: caffe/caffe.hpp: No such file or directory

    在编译caffe-yolov3时报错: fatal error: caffe/caffe.hpp: No such file or directory 查看CMakeLists.txt时,看到引用库路 ...

  9. ubuntu MNN编译安装

    [MNN学习一]基于Linux的MNN编译安装,模型转换以及benchmark测试 目录 一. MNN编译安装 (MNN编译) 二. 编译模型转换工具MNNConvert (MNNConvert) 三 ...

最新文章

  1. 注意:阿里Druid连接池监控的两个坑
  2. ProjectManagement::Redmine备份与恢复
  3. JDK1.8 JVM元数据区取代了永久代,元数据空间并不在虚拟机中,而是使用本地内存
  4. docker mysql数据库初始化_如何在Mysql的Docker容器启动时初始化数据库
  5. 漫步数理统计十——连续随机变量(上)
  6. 【评测机】评测时报错cc1plus: fatal error: /xx/xx/main.cpp: Permission denied compilation terminated.的解决方法...
  7. 计算机全键在线使用说明书,笔记本电脑键盘介绍图,笔记本键盘全部按键功能介绍说明-系统城...
  8. C语言入夏标志,[二级C语言程序设计.docx
  9. 网页编程 table 表格设计 css
  10. Android PowerManagerService简单分析
  11. 5G/NR中RRC的三种状态(idle, active, inactive)
  12. 16种常用的数据分析方法-因子分析
  13. STM32F4移植EMWIN(RA8875驱动显示屏)
  14. 连载:中国最早的一代官派留学生--留美幼童 (12)
  15. 计算机存储程序错误检验,内存错误怎么办?内存错误的修复与检测方法介绍
  16. 「KLAYswap升级」Klaytn圣诞送好礼,Kakao专属礼品大放送!
  17. 简单的数据库关系表建立
  18. 2021湖南邵阳高考成绩查询,2021邵阳学院录取分数线,邵阳学院高考分数线查询入口...
  19. Element UI - v-infinite-scroll无限滚动组件
  20. libwebsocket 编译mini demo时遇到require lws_config

热门文章

  1. Aspose.PDF for Java系列5-转化PDF文档为Word
  2. 2022-2028全球与中国荧光增白剂 OB-1市场现状及未来发展趋势
  3. 多元统计分析基于r课后答案_何晓群版—多元统计分析课后练习答案.pdf
  4. 【技术解析】数通是什么?
  5. php900塞孔油墨_HDI树脂油墨塞孔工艺研究
  6. 【机器视觉】OpenCV-Python 图像的噪声处理
  7. codeblocks如何去掉后面的dos窗口
  8. 高新技术企业研发项目立项介绍
  9. 微信小程序解析unionid
  10. JAVA中的类和对象之this的详解