caffe安装--踩坑

2023-05-16

安装caffe,需要先安装cuda与cudnn,安装cuda之前,需要先安装nvidia的驱动,然后安装opencv,如果能将opencv踩过,那么安装openpose、caffe,我想都没有多大的问题了。
一、官网下载

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

二、编译

cd caffe
cp Makefile.config.example Makefile.config
mkdir build
cd build
cmake ..
sudo make //首次编译加-j12 ,最好以一个线程编译,方便找问题--踩坑!
sudo make install

三、基本依赖
与opencv一样,需要什么就安装什么,基本上opencv编译过了,相关的依赖的都已经装好了。
四、错误
1、cmake nvcc fatal : Unsupported gpu architecture 'compute_20
根据百度的解决方案是:
注释相关配置行:

CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \
#-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
转载:https://blog.csdn.net/tjuyanming/article/details/79249964

但是依旧报错,说明仍是存在其他的编译配置:
最后找到caffe/cmake/Cuda.cmake:

1 if(CPU_ONLY)
  2   return()
  3 endif()
  4 
  5 # Known NVIDIA GPU achitectures Caffe can be compiled for.
  6 # This list will be used for CUDA_ARCH_NAME = All option
  7 #set(Caffe_known_gpu_archs "20 21(20) 30 35 50 52 61")
  8 set(Caffe_known_gpu_archs "30 35 50 52 61")
原文链接:https://blog.csdn.net/fdd096030079/article/details/84451811

2、由于SSD的作者是基于Opencv2.0的环境下写出的SSD源码,而Opencv2和Opencv4的源码又做了比较大的改变,导致编译时会出现像变量没声明的错误,因此需要对以下几个文件进行修改。
错误1:

/src/caffe/layers/video_data_layer.cpp:55:30: error: ‘CV_CAP_PROP_FRAME_COUNT’ was not declared in this scope
     total_frames_ = cap_.get(CV_CAP_PROP_FRAME_COUNT);

解决:
/caffe/src/caffe/layers/video_data_layer.cpp

//加上一个头文件
#include <opencv2/videoio.hpp>
//加上cv命名空间
using namespace cv;
//去掉CV_CAP_PROP_FRAME_COUNT,CV_CAP_PROP_POS_FRAMES前面的CV_
不过建议还是在文件头部进行宏定义:
#define CV_CAP_PROP_FRAME_COUNT CAP_PROP_FRAME_COUNT
#define CV_CAP_PROP_POS_FRAMES   CAP_PROP_POS_FRAMES

错误2:

caffe/src/caffe/layers/window_data_layer.cpp:293:42: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
         cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);

解决:
opencv4里的 CV_LOAD_IMAGE_COLOR 应该使用 cv::IMREAD_COLOR 来代替。同上定义宏,即可。

错误3:

/home/neuron-drop/workspace/caffe/src/caffe/util/bbox_util.cpp:2186:42: error: ‘CV_FILLED’ was not declared in this scope
                   CV_RGB(255, 255, 255), CV_FILLED);

解决:
/caffe/src/caffe/util/bbox_util.cpp

//修改CV_RGB为cv::Scalar,但应该注意两者的区别,前者为RGB,后者为BGR
//修改CV_FILLED为cv::FILLED

错误4:

caffe/src/caffe/util/bbox_util.cpp:2221:48: error: there are no arguments to ‘CV_FOURCC’ that depend on a template parameter, so a declaration of ‘CV_FOURCC’ must be available [-fpermissive]
         cv::VideoWriter outputVideo(save_file, CV_FOURCC('D', 'I', 'V', 'X'),

解决:

cv::VideoWriter writer;
// 修改CV_FOURCC为writer.fourcc

错误5:

caffe/src/caffe/util/im_transforms.cpp:246:39: error: ‘CV_BGR2GRAY’ was not declared in this scope
     cv::cvtColor(in_img, in_img_gray, CV_BGR2GRAY);

解决:

注释掉代码对opencv版本的if判断,并加上以下
#define CV_BGR2HSV cv::COLOR_BGR2HSV
#define CV_HSV2BGR cv::COLOR_HSV2BGR
#define CV_BGR2Lab cv::COLOR_BGR2Lab

错误6:

caffe/src/caffe/util/io.cpp:86:34: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
   int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :
  
  /home/neuron-drop/workspace/caffe/src/caffe/util/io.cpp:87:5: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
     CV_LOAD_IMAGE_GRAYSCALE);

解决:
/home/neuron-drop/workspace/caffe/src/caffe/util/io.cpp

加上
#define CV_LOAD_IMAGE_COLOR cv::IMREAD_COLOR
#define CV_LOAD_IMAGE_GRAYSCALE cv::IMREAD_GRAYSCALE

感兴趣的同学,可以参考opencv4模块的改动:

https://docs.opencv.org/master/d4/da8/group__imgcodecs.html

错误7:

/usr/include/c++/5/bits/c++0x_warning.h:32:2: 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 \
  ^
CMake Error at cuda_compile_1_generated_detection_output_layer.cu.o.Release.cmake:220 (message):
  Error generating
  /home/neuron-drop/workspace/caffe/build/src/caffe/CMakeFiles/cuda_compile_1.dir/layers/./cuda_compile_1_generated_detection_output_layer.cu.o

解决:
vim CMakeLists.txt

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

五、重新编译

cd build
rm * -rf
cmake ..
sudo make -j12
sudo make install 

感谢前人踩坑,提示了我去对应着改动编译代码,否则以我浅薄的C语言知识去解决这个问题怕是遥遥无期了。特此,表示感谢!!
参考:

https://blog.csdn.net/u013915633/article/details/52530130
https://blog.csdn.net/tosonw/article/details/91043145

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

caffe安装--踩坑 的相关文章

  • Window下用caffe实现MNIST训练

    本博包含MNIST原始数据的格式转化 以及分类训练 1 数据转化 Caffe源码中src caffe caffe examples mnist convert mnist data cpp提供的实现代码并不能直接在Windows下运行 这里
  • Caffe源码中caffe.proto文件分析

    Caffe源码 caffe version 09868ac date 2015 08 15 中有一些重要文件 这里介绍下caffe proto文件 在src caffe proto目录下有一个caffe proto文件 proto目录下除了
  • [caffe]:检查失败:检查失败:hdf_blobs_[i]->shape(0) == num(200 vs. 6000)

    我有训练并将数据标记为 data mat 我有 200 个训练数据 包含 6000 个特征 标签为 1 1 已保存在 data mat 中 我正在尝试将数据转换为 hdf5 并使用以下命令运行 C affe load data mat hd
  • 谷歌 Deep Dream 艺术:如何在神经网络中选择一个层并对其进行增强

    我对 Google 最近发表的一篇博客文章感兴趣 该文章描述了nn创造艺术 我对一项技术特别感兴趣 在这种情况下 我们只需向网络提供任意图像或照片 然后让网络分析该图片 然后我们选择一个层并要求网络增强它检测到的任何内容 网络的每一层都处理
  • Caffe:如果两层反向传播渐变到同一个底部斑点会发生什么?

    我想知道如果我有一个层生成一个底部斑点 该斑点进一步被两个后续层消耗 这两个层都会生成一些梯度来填充反向传播阶段的 Bottom diff 将两个梯度相加形成最终梯度吗 或者说 只有他们一个人能够活下去 根据我的理解 Caffe 层需要在用
  • 为 Caffe 生成 LMDB

    我正在尝试使用 caffe 我正在使用 python 包装器 构建用于显着性分析的深度学习模型 但我无法理解如何为此目的生成 lmdb 数据结构 我已经浏览了 Imagenet 和 mnist 示例 我明白我应该以以下格式生成标签 my t
  • PyCaffe中的layer模块在哪里定义

    我正在修改一个Caffe教程 http nbviewer jupyter org github BVLC caffe blob master examples pascal multilabel with datalayer ipynb实现
  • LMDB 文件以及它们如何用于 caffe 深度学习网络

    我对深度学习很陌生 在使用 caffe 深度学习网络时遇到一些问题 基本上 我没有找到任何文档来解释如何解决我现在正在处理的一系列问题 请让我先解释一下我的情况 我有数千张图像 我必须对它们进行一系列预处理操作 对于每个预处理操作 我必须将
  • CNN 上的快速损失收敛意味着什么?

    我正在两个不同的深度学习库 Caffe e Tensorflow 中训练两个 CNN AlexNet e GoogLeNet 该网络由每个图书馆的开发团队实施 here https github com BVLC caffe tree ma
  • 未知的底部 blob“数据”(层“conv1”,底部索引 0)

    尝试在我自己的数据集上训练 LeNet 我从长一维矢量数据集生成了 HD F5 文件 并创建了 HDF5 数据层 如下所示 我对顶部 blob 的命名与生成 HDF5 时的命名相同 name Test net layer name data
  • Caffe 中的欧几里得损失层

    我目前正在尝试在 caffe 中实现我自己的损失层 在尝试这样做的同时 我使用其他层作为参考 然而 让我困惑的一件事是使用top 0 gt cpu diff in Backward cpu 我将使用EuclideanLossLayer作为参
  • Caffe 运行测试失败

    成功构建 caffe 后 我进行了 runtest 但在 ImageDataLayer DBTest DataTransformTest HDF5OutputLayerTest 和一些求解器中失败 构建 链接到特定路径时是否缺少步骤 这是测
  • 在 ubuntu 16.04 中安装 Caffe 时遇到困难

    操作系统 ubuntu 16 04 CUDA 7 5 库德恩 5 我正在关注this https github com BVLC caffe wiki Ubuntu 16 04 or 15 10 OpenCV 3 1 Installatio
  • 未定义符号:_ZdlPvm

    我在用阿波罗咖啡 https github com Russell91 apollocaffe and 重新检查 https github com Russell91 ReInspect Apollocaffe在 c 库中并且Reinspe
  • Caffe net.predict() 输出随机结果 (GoogleNet)

    我使用了预训练的 GoogleNethttps github com BVLC caffe tree master models bvlc googlenet https github com BVLC caffe tree master
  • 在 Yosemite 上编译 caffe

    我正在尝试在 Yosemite 上安装 caffe 但我的 C 不是最强的 这是我的错误 Alis MacBook Pro caffe ali make all NVCC src caffe layers absval layer cu u
  • 查找带有 Anaconda cmake 前缀的 boost-python3

    DLDR如何将 cmake 指向 boost python3 库 cmake 不会自动检测到它 我正在尝试建立caffe https github com BVLC caffe对于 Python 3 6 使用提供的 cmake 我的系统规格
  • 如何加载 caffe 模型并转换为 numpy 数组?

    我有一个 caffemodel 文件 其中包含 ethereon 的 caffe tensorflow 转换实用程序不支持的层 我想生成我的咖啡模型的 numpy 表示 我的问题是 如何将 caffemodel 文件 我还有 prototx
  • Caffe 的 LSTM 模块

    有谁知道 Caffe 是否有一个不错的 LSTM 模块 我从 russel91 的 github 帐户中找到了一个 但显然包含示例和解释的网页消失了 以前是http apollo deepmatter io http apollo deep
  • caffe reshape / 上采样全连接层

    假设我们有一个像这样的层 layer name fully connected type InnerProduct bottom bottom top top inner product param num output 1 输出是batc

随机推荐

  • 浪潮服务器NF5280m5 配置,raid和系统 安装纪录

    遇到的问题 xff1a 新到了一台服务器浪潮服务器NF5280m5 用u盘装ubantu系统 xff0c 一开始就找不到硬盘 xff0c 对于服务器0概念的新手来说太难弄了 xff0c 折腾了很久最后问客服解决了问题 服务器情况 xff1a
  • Longest Substring with K Distinct Characters (medium)

    刷题参考 xff1a https blog csdn net IBelieve2016 article details 104544763 include lt iostream gt include lt vector gt includ
  • vmvare ssh连不上,windows ping不通centos,centos能ping通windows

    写在前面 xff1a 此文章只对自己的电脑情况适应 xff0c 也仅为自己学习过程中的记录 xff0c 不对任何人负责 操作前记好自己原来的配置 xff0c 不适应的情况下还可以恢复 被楼下几个评论给恶心到了 x1f922 xff0c 刚学
  • 使用python-iptables库设置linux防火墙权限,只允许特定ip访问指定端口,通过web服务二次验证

    背景 xff1a 某天周末开着黑 xff0c 打着游戏 xff0c 吹着牛逼 xff0c 突然就被一条消息给打断了 经过分析发现可能是因为服务器账号密码设置太简单 xff0c 实验室服务器使用frp后 xff0c 被人下了挖矿脚本cnrig
  • 毕业论文 - 写作问题总结 和 tips

    主要是一些我自己写论文碰到的问题总结 xff0c 将经验分享出来 xff0c 帮助每一个写论文的苦逼学子 1 论文格式 可以知网找到往届师兄姐的论文 xff0c 找导师要学校的论文格式的文档 xff0c 对照格式写 2 在word里面提前设
  • 【C#】——系统编码规范

    C 系统编码规范 开发程序时 xff0c 往往会有很多人参与 xff0c 为了时程序与代码风格标准化 xff0c 以便于时每个参与才发的人员尽可能直观地查看和理解其他人编写的代码 xff0c 需要在编码之前制定一套统一的编码规范 下面介绍一
  • 实现字典树

    自己实现的字典树版本 带详细注释 package leetcode LC class TrieNode 4个参数设置 以该节点字符为结尾的字符串数目 int end num 以该节点作为前缀字符的个数 int prefix num 是否是叶
  • python爬取html,反转义,双斜杠(\\)转换成单斜杠(\)字符被json正常解析

    新手刚学py不久 xff0c 用正则爬取数据的时候获得了一段json数据格式的段落 xff0c 抓取回来的时候发现本身的文档已经是加了双反斜杠 的字符串 xff0c 这时候我用json loads 格式化数据的时候出现错误 xff0c 搞了
  • Mysql插入数据去重方法

    最近写爬虫 xff0c 有需求需要将数据插入mysql xff0c 由于爬虫采用分布式 xff0c 可能会多次爬重复页 xff0c 这时候就需要对数据去重 假设 xff1a 表 xff1a test 含 id xff0c a xff0c b
  • IBM的云平台Bluemix使用初体验-创建第一个容器

    概述 第一次使用IBM的云平台Bluemix xff0c 写一个blog记录一下 我注册Bluemix挺早的 xff0c 但是在工作中一直没有机会使用IBM的云平台 现在辞职创业 xff0c 做自己喜欢的互联网 xff0c 终于有机会用上了
  • 在Source Insight中添加对.cc的支持

    Options gt Document Options Document Type gt 下拉选择 xff1a C 43 43 Source File 在File Filter 中加入 cc
  • Android HFP流程记录

    DP 完成后 xff0c btif dm c文件中 xff0c btif dm search services evt函数 xff0c bond state changed BT STATUS SUCCESS amp bd addr BT
  • OPP文件传输

    在RFCOMM连接后 xff0c 进行Command Type Parameter Negotiation时 xff0c 会协商Credits初始值 建立OBEX连接时 xff0c 会将poll bit设置 xff0c 用于Given Cr
  • 关于ctags的使用

    第一步 xff1a 首先安装ctags sudo apt get install ctags 第二步 xff1a 在你要编辑的源码目录下ctags R 注意 xff1a 这个源码目录就是你要编写代码的目录 xff0c 不是其它的目录 xff
  • 踩坑之react生命周期

    问题情景 创建组件tableCom xff0c 用来渲染表格 xff0c 实质还是使用antd里的table xff0c 但是重新包装一下是为了columns和dataSource通过外部数据传入 span class hljs tag l
  • C++求素数

    问题描述 输入1 999内的正整数 xff0c 判断其是否为素数 xff0c 是素数输出 yes xff0c 不是素数输出 flase 输入形式 输入一个1 999内的正整数 输出形式 输出 yes 或 false 样例输入 13 样例输出
  • Git ubuntu 升级

    外文文档 This team will distribute the most current stable package of Git for Ubuntu Stable releases https launchpad net git
  • RxJava2 源码分析二

    文章目录 前言RxJava2 线程调度RxJava2 怎么进行线程调度总结 前言 经过RxJava2源码分析一 xff0c 我们了解了RxJava2是怎么进行数据的发送和接收 那么这次我们主要是来分析 xff0c RxJava2是如何进行线
  • 如何在Ubuntu 20.04上安装Google Chrome浏览器

    Chrome适用于所有主要操作系统和硬件平台 xff0c 可让您在所有设备上同步书签 xff0c 历史记录和密码 在Ubuntu上安装Google Chrome Chrome不是开放源代码浏览器 xff0c 它也不包含在标准Ubuntu存储
  • caffe安装--踩坑

    安装caffe xff0c 需要先安装cuda与cudnn xff0c 安装cuda之前 xff0c 需要先安装nvidia的驱动 xff0c 然后安装opencv xff0c 如果能将opencv踩过 xff0c 那么安装openpose