[caffe安装]配置环境过程中出现的问题及解决

2023-11-08

 今天要跑一下Convolutional Autoencoder for Loop Closure,轻量级神经网络闭环方法。

caffe安好之后编译程序出现以下错误:

Scanning dependencies of target deeplcd
[  5%] Building CXX object CMakeFiles/deeplcd.dir/src/deeplcd/deeplcd.cpp.o
In file included from /home/lenovo/litw/dependencies/caffe/build/install/include/caffe/common.hpp:19:0,
                 from /home/lenovo/litw/dependencies/caffe/build/install/include/caffe/blob.hpp:8,
                 from /home/lenovo/litw/dependencies/caffe/build/install/include/caffe/caffe.hpp:7,
                 from /home/lenovo/litw/DL/calc/DeepLCD/include/deeplcd/deeplcd.h:1,
                 from /home/lenovo/litw/DL/calc/DeepLCD/src/deeplcd/deeplcd.cpp:1:
/home/lenovo/litw/dependencies/caffe/build/install/include/caffe/util/device_alternate.hpp:34:10: fatal error: cublas_v2.h: 没有那个文件或目录
 #include <cublas_v2.h>
          ^~~~~~~~~~~~~
compilation terminated.
CMakeFiles/deeplcd.dir/build.make:62: recipe for target 'CMakeFiles/deeplcd.dir/src/deeplcd/deeplcd.cpp.o' failed
make[2]: *** [CMakeFiles/deeplcd.dir/src/deeplcd/deeplcd.cpp.o] Error 1
CMakeFiles/Makefile2:136: recipe for target 'CMakeFiles/deeplcd.dir/all' failed
make[1]: *** [CMakeFiles/deeplcd.dir/all] Error 2
Makefile:94: recipe for target 'all' failed
make: *** [all] Error 2

大概是因为缺少cuda,但安装cuda失败,提示缺少kernel module,阅读CUDA安装说明才发现(怎么这个时候才读啦),我电脑上根本就没有nvidia GPU...回过头来看CUDA只是程序的可选依赖项,最后发现是因为在安装caffe时没有把设置改成cpu-only.

然后在caffe包里的CMakeLists.txt里面CPU-ONLY这一参数设置为ON才可。但还是程序编译失败了。

然后使用推荐的make编译。先需要修改Makefile.config文件,去注释掉cpu-only那一行。然后出现错误:

In file included from src/caffe/solvers/sgd_solver.cpp:5:0:
./include/caffe/util/hdf5.hpp:7:10: fatal error: hdf5.h: 没有那个文件或目录
 #include "hdf5.h"
          ^~~~~~~~
compilation terminated.
Makefile:591: recipe for target '.build_release/src/caffe/solvers/sgd_solver.o' failed
make: *** [.build_release/src/caffe/solvers/sgd_solver.o] Error 1

按照https://blog.csdn.net/object_allen/article/details/73933934里面的方法,改进了一下,

对原文行不做修改,而是对197,198行做修改

ifeq ($(USE_HDF5), 1)
	LIBRARIES += hdf5_hl hdf5
把上面两行改成
ifeq ($(USE_HDF5), 1)
	LIBRARIES += hdf5_serial_hl hdf5_serial

大概是ubuntu16.04之后更新了路径

然后又出错辽,因为caffe默认opencv版本是2.x,但我装的3.4.4

报错如下:

.build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用
.build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用
.build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用
collect2: error: ld returned 1 exit status
Makefile:635: recipe for target '.build_release/tools/upgrade_solver_proto_text.bin' failed
make: *** [.build_release/tools/upgrade_solver_proto_text.bin] Error 1

https://blog.csdn.net/u011636440/article/details/82660697找到解决方案,把Makefile.config中OPENCV_VERSION := 3取消注释即可。

但最后还是删掉重新编译成功,

but you know what,

还是开头这个错误!但既然caffe是编译成功的,所以是程序设置的问题。在https://blog.csdn.net/xcls2010/article/details/80422538中找到解决方案,给CXX_FLAGS += -DCPU_ONLY=1 这一项即可。

然后继续跑又出错了(崩溃边缘)(幸好之前就有看到解决方案)

[ 16%] Building CXX object CMakeFiles/deeplcd.dir/src/deeplcd/deeplcd.cpp.o
In file included from /home/lenovo/litw/dependencies/caffe/include/caffe/caffe.hpp:7:0,
                 from /home/lenovo/litw/DL/calc/DeepLCD/include/deeplcd/deeplcd.h:1,
                 from /home/lenovo/litw/DL/calc/DeepLCD/src/deeplcd/deeplcd.cpp:1:
/home/lenovo/litw/dependencies/caffe/include/caffe/blob.hpp:9:10: fatal error: caffe/proto/caffe.pb.h: 没有那个文件或目录
 #include "caffe/proto/caffe.pb.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
CMakeFiles/deeplcd.dir/build.make:62: recipe for target 'CMakeFiles/deeplcd.dir/src/deeplcd/deeplcd.cpp.o' failed

 

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

[caffe安装]配置环境过程中出现的问题及解决 的相关文章

  • Android中文API最新中文版

    http www eoeandroid com thread 58597 1 1 html 转载于 https www cnblogs com lost in code archive 2013 03 13 2956940 html
  • import “cv2“ could not be resolved pylance(reportMissingImports)

    openCV系列文章目录 文章目录 openCV系列文章目录 前言 一 错误原因 二 解决方法 1 在vscode Python Select Interpreter 2 依然报错 cv2 error OpenCV 4 7 0 D a op
  • Vagrant Note

    Vagrant Note 1 vagrant 命令 vagrant init hashicorp precise64 需要先删除Vagrantfile文件 vagrant up 启动虚拟机 根据Vagrantfile文件启动 vagrant
  • 【Linux命令详解

    文章标题 简介 一 参数列表 二 使用介绍 1 基本用法 2 显示所有进程 3 显示进程详细信息 4 根据CPU使用率排序 5 查找特定进程 6 显示特定用户的进程 7 显示进程内存占用 8 查看进程树 9 实时监控进程 10 查看特定进程
  • 一行代码实现安慰剂检验

    1 什么是安慰剂检验 随着 因果推断方法 在实证研究中的使用比例不断提升 越来越多的文章也会进行安慰剂检验 其检验基本原理与医学中的安慰剂类似 即使用 假的政策发生时间或实验组 进行分析 以检验能否得到政策效应 如果依然得到了政策效应 则表
  • echarts tooltip显示其他字段

    这是上面的数据 let data nodes 公司名称 name 浏览器有限公司 category 0 0代表公司 1代表自然人股东 value 100 capi 持股数1200 股东列表 name 操作系统集团 category 0 va
  • -----关于Onvif链接成功但运行报错/usr/bin/ld: warning:xxx,needed by xxx,may conflict with libssl.so.1.0.0

    1 错误分析 看图 原因是openssl系统中的版本与mysql或者libevent这些库里面的openssl的版本不一致 导致链接出了问题 解决方法 重新下载与项目中mysql和libevent中openssl一样的版本 即 由于我项目中
  • Python毕业设计 机器学习新闻算法研究与实现

    文章目录 0 前言 简介 本文章博主将介绍 参与及比较算法 先说结论 实现过程 数据爬取 数据预处理 CNN文本分类 其他分类方法更新中 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达
  • C/C++实现协程及原理(详细完整版)-架构师篇

    一 协程 Coroutine 简介 协程 又称微线程 纤程 英文名Coroutine 协程的概念很早就提出来了 但直到最近几年才在某些语言 如Lua 中得到广泛应用 子程序 或者称为函数 在所有语言中都是层级调用 比如A调用B B在执行过程
  • drools 7.x 加载指定的决策表

    git https github com lccbiluox2 drools test git 1 决策表 位置 Users lcc IdeaProjects drools test src main resources com drool
  • Python异步请求:处理并发任务的结果

    Python异步请求 处理并发任务的结果 处理并发任务的结果 在异步编程中 处理并发任务的结果可能会有所不同 以下是几种常见的处理方式 使用asyncio as completed asyncio as completed 函数返回一个迭代
  • 场景题之最快返回结果

    场景题之最快返回结果 问题描述 输入中文 最快从百度翻译 谷歌翻译 有道翻译获取结果返回 代码实现 思路 采用CompletableFuture实现 多个CompletableFuture可以串行执行 也可以并行执行 其中anyOf 方法只
  • 插入排序(Insertion-Sort)-- 初级排序算法

    1 插入排序 Insertion Sort 插入排序 Insertion Sort 的算法描述是一种简单直观的排序算法 它的工作原理是通过构建有序序列 对于未排序数据 在已排序序列中从后向前扫描 找到相应位置并插入 算法描述 一般来说 插入
  • doGet和doPost、Cookie和Session的原理及区别、Spring框架

    一 doGet和doPost 1 doGet GET调用用于获取服务器信息 并将其做为响应返回给客户端 当经由Web浏览器或通过HTML JSP直接访问Servlet的URL时 一般用GET调用 public class doGet ser
  • 为分类数据添加计数表(R语言实现)

    为分类数据添加计数表 R语言实现 在数据分析和统计学中 我们经常需要对分类变量进行计数 并以表格的形式展示分类的频数 R语言是一种功能强大的数据分析工具 提供了各种函数和包来处理和可视化数据 在本文中 我将向您展示如何使用R语言为划分后的分
  • Android Studio相关知识

    一 如何更新android studio 打开Help gt Check For Updates 或 打开Settings gt 搜索Updates 找到按钮Check Now 二 如何更新android studio的adb 方案一 直接
  • 【SMD & NSMD】

    正确的PCB焊盘设计对于有效地将元件焊接到电路板至关重要 对于裸焊盘组装 有两种常见的焊接方法 阻焊层定义 SMD 与非阻焊层定义 NSMD 每种方法都有自己的特点和优势 SMD Solder Mask Defined Pad 是由阻焊层来
  • Web3与智能合约交互实战

    写在前面 在最初学习以太坊的时候 很多人都是自己创建以太坊节点后 使用geth与之交互 这种使用命令行交互的方法虽然让很多程序员感到兴奋 黑客帝国的既视感 但不可能指望普通用户通过命令行使用Dapp 因此 我们需要一种友好的方式 比如一个w
  • 计算机物联网软件工程,关于计算机物联网的应用分析

    龙源期刊网 http doc 100lw com 关于计算机物联网的应用分析 作者 曹俊娜 来源 电子技术与软件工程 2016年第03期 摘要随着智能设备的不断推出和移动互联网的发展 计算机物联网技术越来越被人们所熟知 物联网技术区别于传统
  • 给网站、博客文章添加阅读次数统计,我用两行代码 搞定计数

    本文转载于不蒜子 一 安装脚本 必选 要使用统计次数必须在页面中引入busuanzi js 目前最新版如下 任何类型的个人站点使用 如果你是用的hexo 打开themes 你的主题 layout partial footer ejs添加上述

随机推荐

  • ! [rejected] main -> main (fetch first) error: failed to push some refs to

    rejected main gt main fetch first error failed to push some refs to 报错信息 To github com raxx xxar git rejected main gt ma
  • 快速WordPress个人博客并内网穿透发布到互联网

    快速WordPress个人博客并内网穿透发布到互联网 文章目录 快速WordPress个人博客并内网穿透发布到互联网 我们能够通过cpolar完整的搭建起一个属于自己的网站 并且通过cpolar建立的数据隧道 从而让我们存放在本地电脑上的网
  • @EnableCircuitBreaker found, but there are no implementations. Did you forget to include a starter?

    java lang IllegalStateException Annotation EnableCircuitBreaker found but there are no implementations Did you forget to
  • ChatGPT vs. Bing vs. Bard

    随着 2022 年 ChatGTP 的推出 人工智能聊天机器人的世界突然走上了一条新道路 如今 密切关注 AI 的人都知道 不同公司推出了几款产品 从谷歌拥有自己的 Bard AI 到微软发布新的 Bing AI Chat 再到 OpenA
  • 6.6开发社区搜索功能

    业务层 新建ElasticsearchService类 package com nowcoder community service import com nowcoder community dao elasticsearch Discu
  • 【电源】DC-DC电路中的伏秒平衡原理

    上一篇我们科普了开关电源 在提到的开关电源中我们常用也就DC DC电路 所以从今天开始将进入到我们的DC DC电路专题 在DC DC电路应用中 我们很多工程师比较难理解BUCK BOOST的升降压区别 或者原理看完就忘又区分不开 那是因为没
  • window子系统使用及问题汇总

    window子系统使用及问题汇总 安装 配置子系统的资源大小 切换默认源 安装docker 解决wsl无法使用systemctl的问题 子系统访问windows系统中的文件 window访问子系统的文件 总结 最近在使用windows上的d
  • nginx vue2+webpack 和 vue3+vite 配置二级目录访问

    我们开发中会遇到这样的需求 让我们用服务器nginx部署一个用域名的二级目录来访问项目 https xxx 二级目录 来放访问项目 目录 思路 1 nginx配置 vue2 和 vue3配置的nginx相同 2 vue2 webpack的配
  • 如何在IDEA设置Java类和方法的注释模板?

    如何在IDEA设置Java类和方法的注释模板 1 类的注释模板设置 首先我们打开IDEA软件 进行如下操作 File gt Settings gt Editor gt File and Code Templates 设置好后 当我们再次创建
  • 磁盘性能基本测试方法

    author skate time 2011 08 22 磁盘性能基本测试方法 dd if dev zero of tmp bs 1M count 10 用dd命令测试瞬间写的能力 iozone a i 1 i 0 c g 5M n 1M
  • PC电脑版微信聊天记录迁移方法

    微信电脑版自带的 备份与恢复 功能 只能把手机上的聊天记录 备份在电脑上 仅仅是备份 是不能在微信电脑版上查看刚备份的聊天记录的 备份后就可以删除手机上的聊天记录 需要的时候再用电脑版留存的备份恢复到手机上 适用场景 可自行琢磨 微信手机版
  • config:invalid signature

    之前服务器换了IP 啥都配置对了 就是IP没改过来 好了 又是花了半天时间排查问题 问题解决 微信config invalid signature 的其中一个错误就是ip地址问题 需在公众号后台 gt 基本配置 gt 设置IP白名单 欢迎关
  • Python time time()方法返回的是秒

    描述 Python time time 返回当前时间的时间戳 1970纪元后经过的浮点秒数 语法 time 方法语法 time time 参数 NA 返回值 返回当前时间的时间戳 1970纪元后经过的浮点秒数 实例 以下实例展示了 time
  • Linux目录操作命令

    1 查看目录命令 ls 用法 ls 选项 目录名 常用选项 a 显示所有文件 包含隐藏文件 l 显示长文件信息 案例 查看 user下的所有文件 ls a user ls 文件或目录路径信息 ls d 查看目录信息 ls l 文件或目录信息
  • Unity Shader入门精要文章目录

    前言 从今天开始 我将每天开始学习一些有关于Shader的知识 并把所学到的知识简化 写成文章来供大家参考或者学习 一方面是为了巩固知识 另一方面是我也没有找到什么系统的文章来学习Shader的知识 我的Shader学习大部分是参考了Uni
  • GDI+ 中路径类使用总结

    背景 路径是一系列相互连接的直线和曲线 由许多不同类型的点所构成 用于表示复杂的不规则图形 GraphicsPath 类表示 要绘制一组图形 如线条 矩形 多边形和曲线等 可以通过 Graphcis 类的 DrawPath 方法一次性绘制
  • 《Python进阶系列》二十六:面试题目:[lambda x: x*i for i in range(4)]

    quad quad 闲着无聊 看了道面试题 瞬间涨姿势了 特地做个总结 题目 题目如下 lst lambda x x i for i in range 4 res m 2 for m in lst print res 上述式子的输出结果 预
  • VirtualBox中出现 UUID have already exists : 修改 UUID

    VirtualBox中出现UUID have already exists 解决方法 要点 C Program Files Oracle VirtualBox VBoxManage exe internalcommands sethduui
  • C++——vector

    文章目录 vector的介绍 vector的使用 为什么vector不提供find 排序 sort vector的模拟实现 搭一个最简单的架子 构造函数和析构函数 尾插 尾删 operator 迭代器 insert erase 迭代器失效
  • [caffe安装]配置环境过程中出现的问题及解决

    今天要跑一下Convolutional Autoencoder for Loop Closure 轻量级神经网络闭环方法 caffe安好之后编译程序出现以下错误 Scanning dependencies of target deeplcd