深度学习框架caffe特点,富有表达性、快速、模块化。下面介绍caffe如何在Ubuntu上编译安装。
1. 前提条件
安装依赖的软件包:
-
CUDA 用来使用GPU模式计算.
- 建议使用 7.0 以上最新的版本
- BLAS via ATLAS, MKL, or OpenBLAS.
- Boost >= 1.55
-
protobuf
,glog
,gflags
,hdf5
可选依赖软件包:
- OpenCV >= 2.4 including 3.0
- IO libraries:
lmdb
,leveldb
(note: leveldb requiressnappy
) - cuDNN for GPU acceleration (v3)
编程开发接口:
Pycaffe 和 Matcaffe,各自有各自的要求:
- For Python Caffe:
Python 2.7
orPython 3.3+
,numpy (>= 1.7)
, boost-providedboost.python
- For MATLAB Caffe: MATLAB with the
mex
compiler
编译版本:
cuDNN Caffe:支持CUDA和cuDNN快速操作
CPU-only Caffe:无CUDA支持,只使用CPU。可用于云和集群部署。
2. 编译
安装依赖包(boost 和 protobuf
, glog
, gflags
, hdf5
):
sudo apt-get install libboost-all-dev libprotobuf-dev protobuf-compiler libhdf5-serial-dev libgflags-dev libgoogle-glog-dev
安装依赖包(atlas):
sudo apt-get install libatlas-base-dev
安装依赖包(CUDA):
下载网址: CUDA
CUDA有几种安装方式,由于文件比较大,国内有源,所以这里选择从网络安装。
下载相应的安装包,如我的是 cuda-repo-ubuntu1504_7.5-18_amd64.deb 。然后执行如下命令:
sudo dpkg -i cuda-repo-ubuntu1504_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
设置LD_LIBRARY_PATH,最简单的方式在你的 /etc/profile 或 ~/.bashrc 文件中添加如下语句:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
或者执行命令 sudo vi /etc/ld.so.conf.d/cuda.conf,在文件中添加如下内容:
/usr/local/cuda/lib64
然后再执行命令:
sudo ldconfig
安装可选包(IO libraries: lmdb
, leveldb
(note: leveldb requires snappy
) 和 opencv):
sudo apt-get install libleveldb-dev libsnappy-dev liblmdb-dev libopencv-dev
安装CUDNN:
下载网址:CUDNN (需要注册申请,批准通过,才能下载)
解压缩下载文件,将 include 和 lib64 拷贝放置在 /usr/local/cuda 目录下即可。
执行如下命令修改链接文件:
cd /usr/local/cuda/lib64
rm -rf libcudnn.so libcudnn.so.4
ln -s libcudnn.so.4.0.4 libcudnn.so.4
ln -s libcudnn.so.4 libcudnn.so
获取源代码:
git clone git://github.com/BVLC/caffe.git
添加修改编译配置:
cp Makefile.config.example Makefile.config
vi Makefile.config
a. 启用CUDNN,去掉"#"
USE_CUDNN := 1
b. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)
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
c.启用opencv3,如果你使用的 opencv >= 3.0.0
OPENCV_VERSION := 3
否则编译时候会报错 “ 对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 ”
执行如下命令编译:
make all -j4
make test -j4
make runtest -j4
- 要编译使用cuDNN加速,在Makefile.config文件中,设置
USE_CUDNN := 1
- 要编译 CPU-only Caffe版本,在Makefile.config文件中,设置
CPU_ONLY := 1
要编译Python 和 MATLAB 封装包,在分别各自使用 make pycaffe
和 make matcaffe 命令编译前,确定在
Makefile.config
文件中,设置好 MATLAB 和 Python的路径。
要安装使用pycaffe,必须安装相应的python依赖包,可进入python,并执行如下命令安装:
for req in $(cat requirements.txt); do pip install $req; done
注意: 在安装python包时,可能会失败,是由于缺少相应的cpp版本,比如我的机器安装pyyaml失败,于是执行命令安装libyaml
sudo apt-get install libyaml-cpp-dev
执行如下命令编译 pycaffe:
make pycaffe -j4
在安装完成之后,如果想要导入caffe
Python模块,则添加模块路径到你的环境变量 $PYTHONPATH
中。比如在你的~/.bashrc中添加如下一行:
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
3. 测试安装
下面通过运行mnist来验证caffe已正常安装:
1. 数据预处理
data/mnist/get_mnist.sh
2. 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。
examples/mnist/create_mnist.sh
生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集
3. 训练mnist
examples/mnist/train_lenet.sh
深度学习框架Caffe的编译安装的更多相关文章
-
深度学习框架-caffe安装-环境[Mac OSX 10.12]
深度学习框架-caffe安装 [Mac OSX 10.12] [参考资源] 1.英文原文:(使用GPU) [http://hoondy.com/2015/04/03/how-to-install-ca ...
-
深度学习框架-caffe安装-Mac OSX 10.12
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...
-
贾扬清分享_深度学习框架caffe
Caffe是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的 贾扬清,目前在Google工作.本文是根据机器学习研究会组织的online分享的交流内容,简单的整理了一下. 目录 ...
-
深度学习框架caffe/CNTK/Tensorflow/Theano/Torch的对比
在单GPU下,所有这些工具集都调用cuDNN,因此只要外层的计算或者内存分配差异不大其性能表现都差不多. Caffe: 1)主流工业级深度学习工具,具有出色的卷积神经网络实现.在计算机视觉领域Caff ...
-
深度学习框架caffe在ubuntu下的环境搭建
深度学习实验室服务器系统配置手册 目录: 一,显卡安装 二,U盘启动盘制作 三,系统安装 四,系统的基本配置 五,安装Nvidia驱动 六,安装cuda ...
-
DMLC深度机器学习框架MXNet的编译安装
这篇文章将介绍MXNet的编译安装. MXNet的编译安装分为两步: 首先,从C++源码编译共享库(libmxnet.so for linux,libmxnet.dylib for osx,libmx ...
-
深度学习框架caffe在macOS Heigh Sierra上安装过程实录
第一步.安装依赖库 brew install -vd snappy leveldb gflags glog szip lmdb brew tap homebrew/science brew insta ...
-
深度学习框架Caffe —— Deep learning in Practice
因工作交接需要, 要将caffe使用方法及整体结构描述清楚. 鉴于也有同学问过我相关内容, 决定在本文中写个简单的tutorial, 方便大家参考. 本文简单的讲几个事情: Caffe能做什么? 为什 ...
-
【深度学习框架-caffe】caffe中使用到的layer
https://www.jianshu.com/p/f6f49f6bcea6 https://github.com/BVLC/caffe/tree/master/include/caffe/layer ...
随机推荐
-
weui tabbar 切换
Html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <met ...
-
《The Elder Scrolls V: Skyrim》百般冷门却强力职业
<The Elder Scrolls V: Skyrim>百般冷门却强力职业 1.有如成龙平常的杂耍型战斗窃贼 每次看帖都察觉大伙一贯在强调窃贼不需要防御,窃贼不需要血,窃贼就是一击致命, ...
-
java.nio.file.Path
public interface Path extends Comparable<Path>, Iterable<Path>, Watchable 1. A Path repr ...
-
linux命令-dd {拷贝并替换}
一 命令解释: dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地*以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: if=文 ...
-
R.java不能自动更新
1. The type R is already defined. (很多时候我们在导入其他人的程序的时候,会遇到这个错误) 通常在project里有两个R.java,一个在src,一个在gen,通常 ...
-
shell 删除日志
一般线上服务的日志都是采用回滚的防止,写一定数量的日志 或是有管理工具定期去转移老旧日志 前几天删除一个测试环境的日志,只保留两天的日志,结果把正在写的日志都给删掉了,不得不重启了服务,经过这一次的错 ...
-
20道Java面试必考题
系统整理了一下有关Java的面试题,包括基础篇,javaweb篇,框架篇,数据库篇,多线程篇,并发篇,算法篇等等,陆续更新中.其他方面如前端后端等等的面试题也在整理中,都会有的. 注:文末有福利!pd ...
-
Linux 学习 (五) 压缩与解压缩命令
Linux达人养成计划 I 学习笔记 常用压缩格式:.zip | .gz | .bz2 | .tar.gz | .tar.bz2 .zip zip 压缩文件名 源文件:压缩文件 zip -r 压缩文件 ...
-
转:IIS 应用程序池 内存 自动回收
原文地址:https://www.cnblogs.com/guohu/p/5209209.html IIS可以设置定时自动回收,默认回收是1740分钟,也就是29小时.IIS自动回收相当于服务器IIS ...
-
汇编 LEA 指令
知识点: LEA指令 &与LEA OD里修改汇编代码 一.LEA指令格式 有效地址传送指令 LEA 格式: LEA 操作数A, 操作数B 功能: 将操作数B的有效地址传送到指定的的 ...