Ubuntu16.04下caffe安装编译全过程(CPU)

2023-11-09

caffe是深度学习最好用的框架之一,但caffe的安装编译过程相对较复杂,本人在安装编译时百度了好几个版本,都没有一次成功过,因此在此总结一下自己的编译过程,本文是在Ubuntu16.04下安装编译caffe,其他版本会略有不同。该教程本人亲测三遍,无特殊情况一般都可以编译成功。

一、安装依赖包

打开linux命令行,先执行下面指令:

sudo apt-get 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指令下载caffe源码,如果还没有安装git,可以先执行下面指令安装git:

sudo apt-get install git

再执行下面指令下载caffe源码:

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

至此我们已经把caffe源码下载到了本地的根目录下,可以用ls指令查看。


红框圈出的就是下载的caffe源码,其他文件是我系统中下载的其他文件,与本文无关。

三、编译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.执行编译,执行以下指令:

make all
make test
make runtest

执行完make runtest指令后,会出现下面的图,则代表caffe已经编译完成。


四、编译python接口

caffe具有python和C++接口,因为比较常用的是python接口,这里演示如何编译python接口。

1.安装pip以及numpy:

sudo apt-get install python-pip
sudo apt-get install python-numpy

2.安装python接口依赖库:

在安装依赖库前,需要先安装gfortran编辑器:

sudo apt-get install gfortran

然后安装依赖库,首先进入caffe目录下的python文件中:

cd caffe/python

安装依赖库:

for req in $(cat requirements.txt); do pip install $req; done

安装完后,执行下面一条语句,该语句的作用是检查依赖库是否都已经安装成功,如果成功会显示requirement already saitisfied,如果未成功会继续安装:

sudo pip install -r requirements.txt

我在执行完上面一条语句后,出现了错误(错误显示为红色字体),我的错误提示是:command "python setup.py egg_info" failed with error code 1 in XXX。

原因是没有指定ipython的版本,执行下面语句可解决该问题:

sudo pip install ipython==5.3.0

这时,再执行 sudo pip install -r requirements.txt 发现没有了红色字体的错误提示,说明依赖库安装成功。

3.添加环境变量:

打开配置文件bashrc:

sudo gedit ~/.bashrc

在文件的最后面添加:

export PYTHONPATH=~/caffe/python:$PYTHONPATH

如下图所示:


保存文件后关闭,然后输入下面语句,使环境变量生效:

source ~/.bashrc

4.编译python接口:

首先进入caffe目录下:

cd caffe

然后开始编译pycaffe:

make pycaffe

编译完后,若无错误提示,则说明编译成功。

5.验证python接口:

进入python环境:

python

如图:


引入caffe包:

import caffe

如果引入caffe包无其他显示,如下图所示:


说明python接口编译成功。如果显示no model named caffe则说明python接口编译失败,重新检查上述步骤或百度解决。至此整个caffe安装编译的过程就全部结束了。


PS:这篇博文本人亲自验证了三次,都是在新安装的ubuntu16.04下编译的,不出意外的话读者按照上述步骤应该都可以编译成功,但是特殊情况如操作系统不是ubuntu16.04或是系统中安装过一些其他东西(本人之前安装了opencv3.1.0版本,然后再编译caffe就会报错),都可能会导致编译失败,如出现其他问题可百度解决。由于赶时间,这篇博文是在飞机上完成的,如果文中有错误之处,希望大家指出并谅解!

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

Ubuntu16.04下caffe安装编译全过程(CPU) 的相关文章

随机推荐

  • cnn 验证集 参与训练吗_使用Sentencepiece +CNN进行文本分类

    1 前言 Sentencepiece是google开源的文本Tokenzier工具 其主要原理是利用统计算法 在语料库中生成一个类似分词器的工具 外加可以将词token化的功能 对比开源的分词器 它会将频繁出现的字符串作为词 然后形成词库进
  • 简而易懂的CPU和MMU画图讲解

    我们知道 程序文件一般放在硬盘上 当把程序运行起来时 程序被放入内存中 通过内存放入cache 通过cache进入cpu 下图中预取器就是负责从cache取出指令 然后由译码器译码 译码的作用就是要知道需要哪些寄存器配合完成指令 如该指令是
  • 对比学习损失 InfoNCE

    对比学习损失 Contrastive Learning Loss 是一种用于自监督学习的损失函数 它侧重于学习一个特征空间 其中相似的样本被拉近 而不相似的样本被推远 在二分类任务中 对比学习损失可以用来学习区分正负样本的特征表示 下面是使
  • 连 JetBrains 都在劝你用正版软件

    https www qikqiak com post free use jetbrains ide https blog csdn net cygcsdn article details 88313512
  • 要想“掌握”自己的命运,就要学会“把控”自己

    近期发生的新闻热点再度引发公众对稳定情绪和心理健康的关注 有时候我们遇到的最大的敌人 不是运气也不是能力 而是失控的情绪和口无遮拦的自己 如何在工作中保持稳定的情绪 谈谈你的看法 作为新时代的打工人 因何会情绪波动 工作中的情绪波动因个人
  • 【计算机科学】【2019】基于深度学习的车辆相关场景理解

    本文为新西兰奥克兰理工大学 作者 Xiaoxu Liu 的硕士论文 共110页 自动驾驶技术是未来交通发展的必然趋势 也是人工智能领域的杰出成就之一 主要是深度学习对自动驾驶的发展做出了重大贡献 深度学习不仅能促进自主车辆感知 识别周围环境
  • Acwing789. 数的范围

    Acwing789 数的范围 题目描述 代码展示 题目描述 代码展示 include
  • C# 获取System.Color 中所有颜色

    将 System Color 中的全部颜色提取出来 经过简单筛选后打乱顺序 做成随机颜色数组 用于存取取出的颜色对象 List
  • node + alipay-sdk 沙箱环境简单测试电脑网站支付

    正式上线需要上传营业执照 不知道怎么去申请一个 使用沙箱测试 首先前往支付宝开放平台控制台可看到左下方的沙箱测试链接 然后设置接口加签方式 选择系统默认密钥 系统默认密钥 gt 公钥模式 gt 查看 相关密钥分3种 应用公钥 应用私钥 选择
  • nestjs:使用nodemailer发送邮件提示mailer Error: Unexpected socket close

    问题 如上 参考 javascript nodemailer Connection closed unexpectedly Stack Overflow 解决办法 如果端口用的465 需要加上 secure true 之前没加导致上述报错
  • qt中将按钮指向的鼠标变成手型

    具体操作的方式有两种 一种是直接通过界面来进行更改 如下 第二种 就是使用代码的形式 ui gt pushButton gt setCursor QCursor Qt PointingHandCursor
  • unix时间戳c语言源码

    在单片机程序开发中 经常会遇到做数据存储 利用时间信息做数据的搜索查询 时间格式最好还是用unix时间戳的形式 可以直接对时间进行加减运算 从RTC中读取的时间一般都是BCD码 如何转换成unix时间戳 简单的做了实现 并开N台电脑从0开始
  • meidaPlayer java.io.IOException: setDataSource failed.: status=0x800000

    1 权限
  • pfSense多拨网速叠加教程

    0 废话 前后一共折腾了两天 发现网上很少有pfsense的多拨教程 查了好多资料终于摸索出来了方法 记录一下 坐标山东 联通光纤入户 200兆 实测稳定在250兆 赞 但是上行只有40兆 最后弄完 下行到了450M 一超过500就全部掉线
  • 杭电OJ 1003 Max Sum

    Max Sum 页面数据来自 this page from http acm hdu edu cn showproblem php pid 1003 Time Limit 2000 1000 MS Java Others Memory Li
  • Leetcode-1991. Find the Middle Index in Array

    Topic Background Given a 0 indexed integer array nums find the leftmost iddleIndex i e the smallest amongst all the poss
  • vben:vue3后台管理项目框架

    前言 Vue Vben Admin 是一个基于 Vue3 0 Vite Ant Design Vue TypeScript 的后台解决方案 目标是为开发中大型项目提供开箱即用的解决方案 包括二次封装组件 utils hooks 动态菜单 权
  • c++ const & constexpr c++98 c++11 c++14

    文章目录 c const 和 constexpr 知识点总结 一 const 1 const修饰变量 修饰普通变量 常量 修饰指针类型 修饰引用类型 2 const修饰函数 const修饰函数参数 const修饰函数返回值 const修饰成
  • 接口超时分析

    原文 接口突然超时 1 网络异常 1 1 网络抖动 经常上网的我们 肯定遇到过这样的场景 大多数情况下我们访问某个网站很快 但偶尔会出现网页一直转圈 加载不出来的情况 有可能是你的网络出现了抖动 丢包了 网页请求API接口 或者接口返回数据
  • Ubuntu16.04下caffe安装编译全过程(CPU)

    caffe是深度学习最好用的框架之一 但caffe的安装编译过程相对较复杂 本人在安装编译时百度了好几个版本 都没有一次成功过 因此在此总结一下自己的编译过程 本文是在Ubuntu16 04下安装编译caffe 其他版本会略有不同 该教程本