首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Ubuntu14.04下安装Caffe

Ubuntu14.04下安装Caffe

作者头像
GavinZhou
发布于 2019-05-26 02:02:52
发布于 2019-05-26 02:02:52
98210
代码可运行
举报
运行总次数:0
代码可运行

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Gavin__Zhou/article/details/47363385

最近几天看了点深度学习(Deep Learning)的东西,也想搞个来玩玩,从Theano、Torch7和Caffe种选择了Caffe,主要是安装比较简单而且网上教程很多。 贴一段Caffe的介绍: Caffe一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的 贾扬清,目前在Google工作。 Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换:

Caffe的优势

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
上手快:模型与相应优化都是以文本形式而非代码形式给出。
Caffe给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。
速度快:能够运行最棒的模型与海量的数据。
Caffe与cuDNN结合使用,测试AlexNet模型,在K40上处理每张图片只需要1.17ms.
模块化:方便扩展到新的任务和设置上。
可以使用Caffe提供的各层类型来定义自己的模型。
开放性:公开的代码和参考模型用于再现。
社区好:可以通过BSD-2参与开发与讨论。

就这样吧,自己去网上找一堆堆的,不是我们这次的重点,跳过。。。。。

也从网上找了一堆教程来看,简单的复杂的都有,好多都属于过时的并不能用,我也是参照了好多网上的博客资料,下面会列出如有侵权行为请联系我


先说下自己机子的配置,i5+Intel集显+4GB RAM,所以CUDA之类的GPU加速是用不上了,不过对于刚入门来说还是没什么问题的。Caffe建议还是在Ubuntu或者CentOS之类的Linux下安装,官方给的教程也都是这样,Windows下真心不建议搞。 Caffe官网 Caffe官方指导 下面开始安装过程:

(1)安装Ubuntu14.04

这个就不说了,不行的可以参考下这个Ubuntu安装

(2)安装CUDA

虽然说自己的破机子用不到但还是装上吧,免得后续出什么差就麻烦了,呵呵 首先,需要下载CUDA的安装包:CUDA下载地址,进入选择自己Ubuntu14.04 deb包下载即可 其次,安装repository和CUDA:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb
$ sudo apt-get update
$ sudo apt-get install -y cuda

设置环境变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ export CUDA_HOME=/usr/local/cuda7
$ export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
$ PATH=${CUDA_HOME}/bin:${PATH}
$ export PATH

(3)安装ipython环境

python系统已经自带了,python2.7,需要安装ipython环境,Caffe不少程序需要用到ipython,网上有人直接装的是spyder,装好了它就默认自带帮你装好ipython,也可以安装EPD下载脚本安装就可以了,默认会帮你安装众多的库,包括ipython,numpy,scipy,pandas,matplotlib等等;嫌麻烦的话,你也可以在ubuntu软件中心搜索spyder安装也可以。

(4)安装BLAS

BLAS选择的是MKL,你也可以选ATLAS或者OpenBLAS,MKL下载地址,需要先申请再下载,一定要保留住安装序列号,后面要用到的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ tar zxvf parallel_studio_xe_2015.tar.gz 
$ chmod a+x parallel_studio_xe_2015 -R
$ sudo ./install_GUI.sh

这样你就启动了GUI形式的安装,感觉就和windows下安装和软件差不多,next一路,最后输入之前发邮件给你的序列号,就OK啦

(5)MKL环境设置

新建MKL配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf

写入下面两句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64

新建cuda配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo gedit /etc/ld.so.conf.d/cuda.conf

写入下面两句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/local/cuda/lib64
/lib

最后完成链接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo ldconfig -v

(6)安装OpenCV

这里用别人提供的安装包,解决了一些依赖的问题,下载地址:OpenCV 切换到文件保存的文件夹,然后安装依赖项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo sh Ubuntu/dependencies.sh

切换目录3.0\安装OpenCV 3.0.0rc1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo sh opencv3_0_0-rc1.sh

联网安装,等就行了

(7)安装glog和其他依赖

glog下载地址 安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ make
$ sudo make install

其他依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
$ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
$ sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
$ sudo apt-get install -y protobuf-c-compiler protobuf-compiler

(8)安装CUDNN

这一步用不到GPU加速的其实不用装,CPU跑也可以,自己没装,贴一段别人的,不敢保证成功。


a.该改版本caffe-master默认支持cudnn-6.5-linux-x64-v2,使用cudnn-6.5-linux-R1会报错,安装前请去先官网下载最新的cuDNN

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo cp cudnn.h /usr/local/include
$ sudo cp libcudnn.so /usr/local/lib
$ sudo cp libcudnn.so.6.5 /usr/local/lib
$ sudo cp libcudnn.so.6.5.48 /usr/local/lib

b. 链接cuDNN的库文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo ln -sf /usr/local/lib/libcudnn.so.6.5.48 /usr/local/lib/libcudnn.so.6.5
$ sudo ln -sf /usr/local/lib/libcudnn.so.6.5 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v

c. 切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cp Makefile.config.example Makefile.config

d. 配置Makefile.config文件(仅列出修改部分) <1>. 启用CUDNN,去掉”#”(目前caffe-master仍然只支持R1版本)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
USE_CUDNN := 1

<2>. 启用GPU,添加注释”#”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 # CPU_ONLY := 1

<3>. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

<4>.启用Intel Parallel Studio XE 2015 Professional Edition for C++ Linux

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BLAS := mkl

<5>.配置路径,实现caffe对Python和Matlab接口的支持

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a

<6>.配置Makefile文件(实现对OpenCV 3.x的支持) 查找“Derive include and lib directories”一节,修改“LIBRARIES +=”的最后一行,增加opencv_imgcodecs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

(9)编译caffe

caffe源代码下载地址 编译:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ make all -j8
$ make test -j8
$ make runtest -j8
$ make pycaffe -j8
$ make matcaffe -j8

到此应该就可以了,下个博客再写如何使用Caffe跑自己的东西

Reference: (1)OuXinYU的博客 (2)CSDN的Caffe介绍 (3)其他的

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年08月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
谢谢分享
谢谢分享
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
[MYSQL] 修改字段长度的时候不能使用instant算法? 那就定制一个?
我们知道mysql 8.0.12引入了instant算法, 部分DDL只需要修改元数据信息即可完成修改, 这样速度是嘎嘎快. 但是支持有限, 大概如下:
大大刺猬
2025/07/25
1130
[MYSQL] 修改字段长度的时候不能使用instant算法? 那就定制一个?
MYSQL INNODB ibd文件详解 (2) 提取DDL和DML
mysql数据和索引是放一起的, 主键索引记录主键值和剩余字段值, 二级索引(普通索引)记录 索引值和主键值.
大大刺猬
2023/04/24
1.2K1
MYSQL INNODB ibd文件详解 (2)  提取DDL和DML
mysql 寻找SDI PAGE
对于原本就是8.0环境的ibd文件, 第4页就是SDI PAGE, 之前的ibd2sql也是直接解析第四页得到的.
大大刺猬
2023/10/13
3330
[MYSQL] REDUNDANT行格式的数据解析
mysql的行格式有4种,REDUNDANT,COMPACT,DYNAMIC和COMPRESSED. 最常用的就是DYNAMIC, 也是mysql默认的行格式(很早只有REDUNDANT). 该行格式虽然复杂一点, 但是支持的索引前缀可达3072字节.(REDUNDANT只支持到768字节).
大大刺猬
2024/12/06
3360
[MYSQL] REDUNDANT行格式的数据解析
MYSQL INNODB ibd文件详解 (3) FIL_PAGE_SDI
虽然上一章已经提取了DDL, 但是存储DDL的sdi页还没有讲.... 现在补上呗..
大大刺猬
2023/04/25
1K2
MYSQL INNODB ibd文件详解 (3) FIL_PAGE_SDI
[MYSQL] mysql.ibd 文件解析 (sdi page) (非debug模式下查看隐藏系统表)
在mysql 8.0版本,系统表的存储引擎由myisam改为了innodb, @@datadir/mysql目录下一堆的数据文件通通放到@@datadir/mysql.ibd文件中了. 但很多表在非debug模式下是无法查看里面的数据的. 这TM就很恼火. (刚学完innodb的磁盘结构, 我能受这气?). 所以我们现在来解析下mysql.ibd文件. (也顺便为 ibd2sql 2.0 做准备)
大大刺猬
2024/09/18
1K0
[MYSQL] mysql.ibd 文件解析 (sdi page) (非debug模式下查看隐藏系统表)
[Linux&MYSQL] xfs文件系统浅析 -- 恢复drop的表
我们知道ibd2sql可以解析ibd文件从而恢复mysql的数据, 但没得ibd文件的时候又该怎么办呢? (哎呀, 不小心drop了表, 又没得备份!)
大大刺猬
2024/10/15
5112
[Linux&MYSQL]  xfs文件系统浅析 -- 恢复drop的表
[MYSQL] mysql 参数lower_case_table_names的修改
该参数默认是0, 即区分大小写. 但现在又想要不区分大小写了. 也就是想设置其值为1. 首先我们要确保数据库里面的表均为小写, 我们可以通过如下sql查询
大大刺猬
2024/09/11
1.5K0
[MYSQL] mysql 参数lower_case_table_names的修改
[MYSQL] mysql数据加密原理和解析
上一章我们讲了mysql压缩原理(含lz4压缩格式)并解析, 细心的同学应该发现旁边就是加密的相关代码. 那本章就来讲讲mysql加密和解析.
大大刺猬
2024/09/27
7700
[MYSQL] mysql数据加密原理和解析
[MYSQL] mysql坏块检查
当mysql存在坏块的时候, 查询对应的表就会报错,然后数据库就crash了. 比如:
大大刺猬
2024/08/22
7430
[MYSQL] mysql坏块检查
MySQL-8.0 | 数据字典最强解读
数据字典(Data Dictionary)中存储了诸多数据库的元数据信息如图1所示,包括基本Database, table, index, column, function, trigger, procedure,privilege等;以及与存储引擎相关的元数据,如InnoDB的tablespace, table_id, index_id等。MySQL-8.0在数据字典上进行了诸多优化,本文将对其进行逐一介绍。
数据和云
2019/05/13
4.2K0
[MYSQL] varchar长度修改时online DDL能够使用哪种算法?
本文将从Innodb存储结构来分析 varchar 字段长度变化在哪些情况使用哪种online DDL算法
大大刺猬
2024/11/21
2853
[MYSQL] varchar长度修改时online DDL能够使用哪种算法?
[ibd2sql] ibd2sql v1.4 新增支持溢出页, 子分区
ibd2sql是一个使用python3编写的离线解析MYSQL INNODB存储引擎的ibd文件的工具. 无第三方依赖包, 纯python3代码. 使用GPL-3.0 license.
大大刺猬
2024/05/21
3770
详解MySQL-8.0数据字典
提示:公众号展示代码会自动折行,建议横屏阅读 ---- 1. 引言 ---- 数据字典(Data Dictionary)中存储了诸多数据库的元数据信息如图1所示,包括基本Database, table, index, column, function, trigger, procedure,privilege等;以及与存储引擎相关的元数据,如InnoDB的tablespace, table_id, index_id等。MySQL-8.0在数据字典上进行了诸多优化,本文将对其进行逐一介绍。 图1 2.
腾讯数据库技术
2019/05/16
6.9K0
详解MySQL-8.0数据字典
MySQL 8.0新特性: 数据字典
目前MySQL 8.0最新版本为8.0.23版本,针对8.0的新特性,从春节前开始做了一些相关学习和测试,后续会不阶段的分享一些8.0的新特性,供大家一起参考和学习;
SEian.G
2021/03/03
2.4K0
[ibd2sql] ibd2sql v1.0 发布 & ibd文件结构说明
修复了一些之前的问题, 比如做过online ddl (instant)的表解析的时候就需要注意record header的第2bit 标记位.
大大刺猬
2024/01/09
1.1K0
[ibd2sql] ibd2sql v1.0 发布 & ibd文件结构说明
MYSQL] mysql坏块检查
当mysql存在坏块的时候, 查询对应的表就会报错,然后数据库就crash了. 比如:
用户10864049
2024/08/24
3740
mysql提升10倍count(*)的神器
之前做数据迁移之后, 关于数据的一致性校验, 我们是使用checksum来做的, 也可以使用count(*), 但是都比较慢. 而数据校验的时候, 数据实际上是静态的, 没有业务使用的, 欸, 那我们是不是就可以自己来统计行数呢?
大大刺猬
2025/03/21
3840
mysql提升10倍count(*)的神器
MYSQL INNODB ibd文件详解 (1)
每个ibd文件包含1个(不考虑ibdata)表空间(一张表), 每个表空间包含若干个segment. 每个segment对应一个索引的叶子节点/非叶子节点. 也就是每2个segment对于一个索引. 每个segment对于n个区(空间分配是按照区来的). 每个区(extent)对于n个page. 为了方便管理区, 每256个区会使用一个page(XDES:EXTENT DESCRIPTOR)来记录相关信息. (是不是都晕了... 不慌,后面有图)
大大刺猬
2023/04/22
3.1K0
MYSQL INNODB ibd文件详解 (1)
[MYSQL] frm2sdi (2) sdi内容讲解
除了在数据字典中有元数据信息外, mysql还在ibd里面存储了该数据文件对应的表的元数据信息.这部分信息就叫做 Serialized Dictionary Information (SDI). 数据格式是我们常见的json格式.
大大刺猬
2025/01/20
3710
相关推荐
[MYSQL] 修改字段长度的时候不能使用instant算法? 那就定制一个?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验