Caffe 工程的一些编译错误以及解决方案

2023-11-03

CAFFE深度学习交流群:532629018


整理一下最近遇到caffe工程的一些编译错误以及解决方法。

1 cuDNN

cuDNN当前最新版本是v5,近两三年的一些caffe工程,使用的版本不尽相同,其中以v2/v3版本的最为常见,所以使用的时候一定要搞清楚(当然如果作者没说,那就自己依次尝试吧)。

cuDNN出现版本不匹配,在工程make的时候,会报如下错误(以安装v4版本,编译v3版本的程序为例):

...

NVCC src/caffe/layers/deconv_layer.cu
NVCC src/caffe/layers/cudnn_conv_layer.cu
src/caffe/layers/cudnn_conv_layer.cu(81): error: argument of type "cudnnAddMode_t" is incompatible with parameter of type "const void *"
          detected during instantiation of "void caffe::CuDNNConvolutionLayer<Dtype>::Forward_gpu(const std::vector<caffe::Blob<Dtype> *, std::allocator<caffe::Blob<Dtype> *>> &, const std::vector<caffe::Blob<Dtype> *, std::allocator<caffe::Blob<Dtype> *>> &) [with Dtype=float]" 
(157): here

...

20 errors detected in the compilation of "/tmp/tmpxft_00002703_00000000-16_cudnn_conv_layer.compute_50.cpp1.ii".
make: *** [.build_release/cuda/src/caffe/layers/cudnn_conv_layer.o] Error 1
make: *** Waiting for unfinished jobs....
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

解决方案是这样的,下载v3版本,解压后,在终端进入所在文件夹下(这里仍然以v3版本为例):

$ cd lib64/
$ sudo cp lib* /usr/local/cuda/lib64/
$ cd ../include/
$ sudo cp cudnn.h /usr/local/cuda/include/
$ cd /usr/local/cuda/lib64/
$ sudo rm -r libcudnn.so libcudnn.so.7.0
$ sudo ln -sf libcudnn.so.7.0.64 libcudnn.so.7.0
$ sudo ln -sf libcudnn.so.7.0 libcudnn.so
$ sudo ldconfig
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2 OpenCV

我使用的版本是3.1.0,在编译工程的时候,遇到如下BUG:

...

CXX/LD -o .build_release/tools/convert_imageset.bin 
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)’ 
.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)’ 
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)’ 
collect2: error: ld returned 1 exit status 
make: * [.build_release/tools/convert_imageset.bin] Error 1

...
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

首先,我是已经配置过了OpenCV的,可以这样查询安装版本:

$ pkg-config --modversion opencv
 
 
  • 1
  • 1

因为编译好了,理所当然,输出结果是3.1.0

所以出现上面的错误,应该是opencv_imgcodecs链接的问题,比较有效的解决方案是,把opencv需要的lib添加到Makefile文件中,找到LIBRARIES(在PYTHON_LIBRARIES := boost_python python2.7 前一行)并修改为:

LIBRARIES += glog gflags protobuf leveldb snappy \
        lmdb boost_system hdf5_hl hdf5 m \
        opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

3 make

每次需要重新编译的过程中,首先需要清除掉以往编译的结果:

$ make clean
 
 
  • 1
  • 1

然后再重新编译:

$ make all -j12
$ make distribute
$ make pycaffe
$ make matcaffe
 
 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

-j12的含义是run 12 jobs in parallel,看自己机器的性能,自己设置,可以更快编译。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Caffe 工程的一些编译错误以及解决方案 的相关文章

  • 如何阅读源代码

    我们在写程式时 有不少时间都是在看别人的代码 例如看小组的代码 看小组整合的守则 若一开始没规划怎么看 就会 噜看噜苦 台语 不管是参考也好 从开源抓下来研究也好 为了了解箇中含意 在有限的时间下 不免会对庞大的源代码解读感到压力 网路上有
  • Win11 安装Docker Desktop报错:Update the WSL kernel by running “wsl --update“ or follow instructions

    这个问题解决了一整个下午 看了无数的解决方案 最后找到了最有效的解决方案 总结如下 安装Docker Desktop之后 打开出现这样的问题 根据提示在powershell通过 wsl update 命令 出现 error 那么可以试试下面
  • 计算机视觉技术与应用综述

    引用自 无人系统之 眼 计算机视觉技术与应用浅析 张 丹 单海军 王 哲 吴陈炜 一 前言 近年来 人工智能和深度学习获得突破 成为了大众关注的焦点 如LeCun Y Bengio Y Hinton G等 1 提出的深度卷积网络在图像识别领
  • 一篇文章搞定Python多进程(这才是正确的Python多进程的打开方式)

    1 Python多进程模块 Python中的多进程是通过multiprocessing包来实现的 和多线程的threading Thread差不多 它可以利用multiprocessing Process对象来创建一个进程对象 这个进程对象

随机推荐

  • python3 [爬虫入门实战] 爬虫之selenium 模拟QQ登陆抓取好友说说内容(暂留)

    很遗憾 部分数据有些问题 不过还是可以进行爬取出来的 先贴上源代码 encoding utf8 from selenium import webdriver import re from bs4 import BeautifulSoup f
  • 二分字符串,没有连续的 1,使用递归思路,以及算法改进探讨

    今天聊一个递归解决二分字符串的问题 问题 给定正整数 N 计算所有长度为 N 但没有连续 1 的二分字符 比如 N 2 时 输出为 00 01 10 当 N 3 时 输出为 000 001 010 100 101 这个问题我在网上简单搜了一
  • linux 修改文件用户组和所有者

    目录 1 linux下修改文件用户组 2 linux下修改文件所有者 3 linux下同时修改文件所有者和用户组 1 linux下修改文件用户组 chgrp change group的简写 修改文件所属的用户组 chgrp 用户组名 文件名
  • (转) .net web项目的安装制作

    原 http blog csdn net houlinghouling archive 2005 06 17 396338 aspx 一 创建基本安装部署项目 1 在解决方案资源管理器 右击解决方案 添加 新建项目 安装部署项目 Web安装
  • 在loader中创建GDT,进入保护模式

    回顾 上一节实现了从BIOS中加载MBR MBR从磁盘2扇区读取loader加载到内存0x900处 但loader目前尚未实现任何功能 Q A Q1 loader在OS中主要做什么 答 创建一些系统数据结构 如GDT 页表等 打开进入保护模
  • 在csdn中复制的代码 去掉前面的行号

    在csdn中复制的代码会有行号 如下 1 2 3 4 5 6 解决方法 利用notepad 的替换功能 如下图一个个查找替换便可
  • stable diffusion实践操作-Controlnet

    本文专门开一节写提示词相关的内容 在看之前 可以同步关注 stable diffusion实践操作 文章目录 前言 1 ControlNet是什么 2 常用的模型 3 基本操作 openpose full 1 提示词 2 参数 控制效果参数
  • Thinkpad E580 硬件错误0187、2200、2201解决经历

    我的电脑是Thinkpad E580 最近电脑坏了 以下是具体情况 一天中午 我打开电脑 在屏幕显示完联想的logn之后 它出现了 我从未见过的我的电脑出现这样的情况 它也给我带来了生活上的不便以及精神和金钱上的损失 当然这是后话了 它长这
  • 人工智能(pytorch)搭建模型11-pytorch搭建DCGAN模型,一种生成对抗网络GAN的变体实际应用

    大家好 我是微学AI 今天给大家介绍一下人工智能 pytorch 搭建模型11 pytorch搭建DCGAN模型 一种生成对抗网络GAN的变体实际应用 本文将具体介绍DCGAN模型的原理 并使用PyTorch搭建一个简单的DCGAN模型 我
  • csharp: 用Enterprise Library对象实体绑定数据

    Enterprise Library https msdn microsoft com en us library ff648951 aspx
  • 盒马五年,参悟取舍

    配图来自Canva可画 从盒马举旗首垦算起 新零售已走过五个年头 在众多资本和玩家的集体探索下 整个赛道越来越繁荣 但格局和气象也在不断变化 这两年的变动尤为明显 疫情的打击 少数资本的强势以及头部梯队的强化 为赛道带来了更大的波动 一边是
  • Pandas 使用指南

    Pandas 可以说是在 Python 数据科学领域应用最为广泛的工具之一 Pandas 是 Python 的核心数据分析支持库 提供了快速 灵活 明确的数据结构 旨在简单 直观地处理关系型 标记型数据 Pandas 的目标是成为 Pyth
  • PCB表面处理方式详解

    上一篇文章中介绍了关于PCB设计中的常用基本概念 那么本篇文章就挑选其中的第三点 表面处理 给大家展开说一说 顺便也自我温习一下 什么是表面处理 由于铜长期与空气接触会使得铜氧化 所以我们需要在PCB表面做一些处理 这样才可以保证PCB板的
  • JQuery Dialog(JS模态窗口,可拖拽的DIV)

    代码分析地址 http jingyan baidu com album fb48e8be5347156e622e14ac html 或者http jingyan baidu com article fb48e8be5347156e622e1
  • 升级log4j2遇到的那些坑

    升级log4j2遇到的那些坑
  • 数据分析与挖掘之一:流程

    概念 数据分析 Data Analysis 是以数据为分析对象 以探索数据内的有用信息为主要途径 以解决业务需求为最终目标 包含业务理 解 数据采集 数据清洗 数据探索 数据可视化 数据建模 模型结果可视化 分析结果的业务应用等步骤在内的一
  • vue中读取对象中对象的属性无法读取报错

    问题描述 报错内容 Vue warn Error in render TypeError Cannot read properties of undefined reading cnName 在写博客系统的时候 在文章详情页 需要获取文章中
  • 杂谈随感-6:敢问路在何方?

    不识庐山真面目 只缘生在此山中 人员远虑 必有近忧 敢问路在何方 4G还是5G 是 钻地道 还是 云中飘 3G 已死 没有出路 4G 行将入木 死路一条 5G Hub不死不活 僵尸 RRU与BBU 一个钻地道 一个云中飘 渐行渐远 各走各路
  • 常用Dos命令

    1 dos命令 color all 修改背景字体颜色 cls 清屏 dir 查看当前目录有哪些文件 a 查看隐藏文件 a d 只查看目录不显示文档 r 只读文件 A 准备存档的文件 在内存中写了但是没网硬盘里面写 S 系统文件 c 显示文内
  • Caffe 工程的一些编译错误以及解决方案

    CAFFE深度学习交流群 532629018 整理一下最近遇到caffe工程的一些编译错误以及解决方法 1 cuDNN cuDNN当前最新版本是v5 近两三年的一些caffe工程 使用的版本不尽相同 其中以v2 v3版本的最为常见 所以使用