ubuntu18.04安装caffe(cpu版)

2023-10-27

主要根据ubuntu安装caffe这个博客
网上有些教程说要安装protobuf2.6.1,实际上只要有protobuf就行,版本无所谓。如果编译过程中出现google protobuf未定义的引用之类的报错,可能是protobuf版本和gcc版本的问题,这里有相应的解决方案

安装gcc5,太高版本或者太低版本都不太好的亚子
首先卸载gcc原来版本

sudo apt-get remove gcc

安装

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5

查看protobuf版本

protoc --version

首先更新

sudo apt update

安装依赖

sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install --no-install-recommends libboost-all-dev

下载caffe

git clone git://github.com/BVLC/caffe.git

编译caffe
1.进入caffe目录下:

cd caffe

2.生成Makefile.config文件:

cp Makefile.config.example Makefile.config

3.修改Makefile.config文件中的配置:
1)编辑Makefile.config文件:

sudo gedit Makefile.config
2)去掉CPU_ONLY:=1前面的#号:

3)配置引用文件路径:

将原来的内容:在这里插入图片描述

替换为:
在这里插入图片描述

4.执行编译,执行以下指令:

sudo make all
sudo make test
 suao make runtest

出现下图所示则成功

编译可能还会剩余几个有关opencv的未定义的引用
在这里插入图片描述首先这个问题确实是opencv的问题,只需要把 Makefile.config里的 #USE_PKG_CONFIG := 这一行前面的#给去掉,然后在他下一行添加

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

保存,然后再编译即可。如果还不可以,试一下把原来的编译内容用make clean清空,再重新编译。如果还不行,那只能靠诸位再继续大胆尝试了。

参考博客1
参考博客2
参考博客3

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

ubuntu18.04安装caffe(cpu版) 的相关文章

  • 为什么 call_usermodehelper 大多数时候都会失败?

    从内核模块中 我尝试使用 call usermodehelper 函数来执行可执行文件 sha1 该可执行文件将文件作为参数并将文件的 SHA1 哈希和写入另一个文件 名为输出 可执行文件完美运行 int result 1 name hom
  • 在 git 中管理 schema.rb 的首选方法是什么?

    我不想添加schema rb to gitignore 因为我希望能够从该文件加载新的数据库架构 然而 保持检查状态会导致各种虚假冲突 而这些冲突很容易通过新的解决方案解决 db migrate reset 基本上我想要一种方法 将 sch
  • 如何列出未推送的 Git 提交(本地但不在源上)

    如何查看我所做的 尚未推送到远程存储库的任何本地提交 偶尔 git status将打印出我的分支是X提交之前origin master 但不总是 这是我安装的 Git 的错误 还是我遗漏了什么 这给出了 origin master 和 HE
  • 名称和电子邮件在 Git 的每用户配置文件中设置,但 Git 仍使用默认生成的名称和电子邮件

    标题已经说了 但我会更彻底地解释一下 我已使用以下命令按照建议配置了用户名和电子邮件 git config global user name git config global user email 我可以通过执行以下操作来验证这是设置的g
  • 使用 Git 在线使用 TFS 的 Visual Studio 2013:自动保存文件签入

    我目前正在将 Visual Studio Premium 2013 Update 3 与 Team Foundation Server Online 结合使用并使用 Git 存储库 直到最近 我已经成功使用 Git Repo 几个月了 现在
  • 如何在没有本地存储库的情况下在远程运行 git 命令

    我有一个名为 git export 的脚本 它可以帮助我导出远程存储库 它是这样运行的 git export http host com git repo lt t tag or b branch or c commit gt local
  • Git 与人工制品

    刚刚完成 NPM 和 Bower 的 Artifactory 设置 它非常容易使用 您只需更改存储库 URL 一切就正常了 查看有关如何让 Artifactory 与 github vcs 一起使用的文档 它看起来过于复杂 我想知道是否有人
  • GitHub - 指定时间的存储库状态

    我是使用 git 版本控制工具的初学者 我想在指定时间 例如 2013 年 10 月 5 日 下载存储库状态 文件 我怎样才能做到这一点 截至 2019 年 5 月 不确定何时引入 您可以简单地按以下格式添加日期 HEAD 2019 04
  • 如何使用 git-tfs 清理损坏的历史记录

    我不确定我是如何进入这种状态的 但我的 tfs 默认远程分支中有一些 TFS 中不存在的提交 所以我想摆脱它们 所以我的历史是这样的 A B C D tfs default 但提交 B 和 C 实际上并不是 TFS 中的变更集 因此 当我签
  • Jenkins groovy - 如何从最新提交中检索标签?

    从中获取最新提交branchName 我们运行下面的代码 treeMapData git branch branchName credentialsId credential url gitLabServer projectName rep
  • Git rebase --继续而不打开编辑器

    调用时git rebase continue在正常的变基冲突之后 编辑器 GIT EDITOR 打开并要求修改提交消息 因为提交消息可能包含前导 所以这可能会失败 export GIT EDITOR true git rebase cont
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • gitattributes 中的`* text=auto eol=lf` 会做什么?

    我们的 gitattributes 文件中有这样的内容 text auto eol lf 我想准确理解这是做什么的 第一部分是text auto 来自文档 http git scm com docs gitattributes 这确保了所有
  • 从预提交挂钩中排除某些文件类型

    我想要一个预提交 git 钩子来检查 如果可能的话 自动删除 尾随空格 In 让 git 在提交之前自动删除尾随空格 https stackoverflow com questions 591923 make git automatical
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • 避免使用 git 和 make 重新编译

    我在 git 中有两个开发分支 并且经常需要在两者之间进行更改 然而 真正令人沮丧的是 每次我在 git 中更改分支时 整个项目都会重新构建 因为某些文件的文件系统时间戳会发生变化 Ofc makefiles 配置为将项目构建到两个不同的构
  • 如何使用 LibGit2Sharp 从 Git 获取更改?

    下面的代码将 Git url 克隆到测试目录 var url http abc 555 com team project 555 git var path E temp 555 var credential new Credentials
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • 如何解决git中文件重命名文件夹冲突?

    我有以下问题 我有两个分支 Branch1 和 Branch2 的一些共同提交 A Branch1 是一个公共分支 位于服务器上 Branch2 是本地分支 在 Branch1 中我更改了文件 BAD folder somefile txt
  • Git-svn:批量删除孤立的远程分支

    我正在处理的 SVN 项目 通过 git svn 有经常创建的分支 然后与主干重新集成 然后删除 现在项目大约有10个分支没有被删除 但是在git中 gitbranch r显示大约有50个 我可以一次删除这些 检查它们是否仍然存在于 svn

随机推荐

  • STM32实战项目—楼宇人员计数系统

    本文项目比较简单 目的是介绍一下红外对管的使用 程序设计也比较简单 因此 博主并没有将程序工程上传资源 如果有需要的话可以私信 文章目录 一 任务要求 二 实现方法 2 1 红外对管简介 2 2 进出人员检测 三 程序设计 3 1 红外对管
  • Intellij idea 报错:Error : java 不支持发行版本5

    推荐解决方式 感谢评论区另一位博友 Fumoon 提供的方案 https blog csdn net qq 42583206 article details 108375173 如按上述方式解决了问题 下文可以忽略
  • webrtc opus 设置与编码

    webrtc opus bg57iv3 扩展头 格式 audio encoder Received session description sdp v 0 o 7489544636758395528 2 IN IP4 127 0 0 1 s
  • 【JustPlay】Brushless ESC calibration

    PWM frequency 50Hz High level time for full throttle 2ms High level time for zero throttle 1ms Brushless ESC calibration
  • TansUNet代码理解

    首先通过论文中所给的图片了解网络的整体架构 vit seg modeling部分 模块引入和定义相关量 coding utf 8 future 在老版本的Python代码中兼顾新特性的一种方法 from future import abso
  • snort在windows下的安装配置

    环境 win7 snort2 8 6 1 安装npcap或者winpcap 首先安装npcap 这是因为snort对网络数据包进行捕获 需要npcap 2 安装snort 使用安装包安装snort 这里直接向下安装即可 不过需要注意snor
  • 数字化转型建设的基本模型与能力构建

    数字经济的政策推动下 行业数字化转型建设如火如荼 本文提出了一种业务为主线的数字化转型建设的基本模型 数据应用业务链 并以数据应用业务链的业务的数据 数据的业务 业务的业务这三个环节探讨了数字化转型建设的能力构建及其基本过程并划分了可合作的
  • 关于激光雷达盲区0.4m问题

    https xw qq com amphtml 20220302A03F6I00 盲区 吸点 激光雷达探测器一般有几到几十纳秒的Dead Time Dead Time指是接收到一个激光脉冲后到再能接受一个新激光脉冲所需的最短时间 当一束激光
  • uniapp 微信小程序订阅(一次性订阅消息)

    首先我们需要了解微信小程序的一些基本的 才能知道我们要做什么 微信小程序消息订阅只有两种形式可以召唤出来 1 用户手动点击按钮 2 支付回调唤起 一次调用最多可订阅3条消息 小程序弹出后 可点击的情况 1 单纯点击取消 确认键 2 勾选了总
  • ajax降低性能,AJAX的性能改进

    AJAX的性能改进 简介 在Web窗体中 我们使用AJAX来从客户端 从JavaScript 调用服务器端方法 AJAX的内部使用XMLHttpRequest 我已经测试了不同的方式实现Ajax功能 另外 我有监测AJAX调用的性能和生命周
  • Introduction to NMOS and PMOS Transistors

    原文链接 https anysilicon com introduction to nmos and pmos transistors Introduction to NMOS and PMOS Transistors In this ar
  • 【网课平台】Day10.对接第三方:实现微信扫码登录

    文章目录 一 需求 微信扫码登录 1 接口文档 2 开发环境准备 3 接入分析 4 接口定义 5 申请令牌 6 查询用户信息 7 保存用户信息 一 需求 微信扫码登录 和第三方对接的流程 1 接口文档 找到第三方的接口文档 微信扫码登录 可
  • 基于python的爬虫实现

    定义 爬虫 Web crawler 也被称为网络爬虫 网络蜘蛛或网络机器人 是一种自动化程序 用于浏览互联网并收集网页内容 基本原理 爬虫的工作原理是通过发送HTTP请求从网页服务器获取网页的内容 然后解析网页并提取所需的数据 具体步骤如下
  • 让vscode正确识别webpack alias路径的方法

    一般的相对路径引入依赖文件 vscode能够正确识别 做出智能提示 但是有时候项目目录层级太深 写相对路径很长 非常容易出错 所以一般我们会在webpack中配置alias 使用短名来减少路径层级 如 import getUsers fro
  • 国内网络摄像机的端口及RTSP地址

    海康威视 默认IP地址 192 168 1 64 DHCP 用户名admin 密码自己设 端口 HTTP 端口 默认为 80 RTSP 端口 默认为 554 HTTPS 端 口 默认 443 和 服务端口 默认 8000 ONVIF端口 8
  • 揭秘阿里新一代SpringCloud学习指南:掌握最具中国特色的微服务组件

    SpringCloud Alibaba 的优势 阿里使用过的组件经历了考验 性能强悍 设计合理 现在开源出来给大家用 成套产品搭配完善的可视化界面给开发运维带来了极大的便利 搭建简单 学习曲线低 作为国内微服务领域的领军企业 阿里巴巴在微服
  • 自定义设置一个屏保程序

    用C语言写一个简单的窗口程序 目的是生成一个可视化的图形窗口 需要用到EasyX库 可在文章末尾的网盘链接中下载 该程序退出需左击鼠标 否则无法退出 include
  • Learning_the_shell

    昨天逛了www linuxcommand org 学习了shell的基本知识 对alias function type等基本命令有了比较深入的了解 还有就是对top kill ps jobs等进程命令有了更清晰的了解 特别是kill的参数问
  • MRI T1加权结构

    MRI是多参数成像 出于分析图像的方便 希望一帧MRI图像的灰度主要由一个特定的成像参数决定 这就是所谓的加权图像 weighted imaging WI 例如图像灰度主要由T1决定时就是T1加权图像 主要由T2决定时就是T2加权图像 主要
  • ubuntu18.04安装caffe(cpu版)

    主要根据ubuntu安装caffe这个博客 网上有些教程说要安装protobuf2 6 1 实际上只要有protobuf就行 版本无所谓 如果编译过程中出现google protobuf未定义的引用之类的报错 可能是protobuf版本和g