安装CUDA的时候不安装显卡驱动;
最后安装好caffe,运行程序时,将相关配置文件改为CPU运行模式,而不是GPU运行模式。
首先,先安装一个git,在这之前要进行依赖源的更新
$sudo apt-get update
然后进行git的安装(可以使用git --version对是否安装了git进行查看)
$sudo apt-get install git
接着进行依赖源的安装
$sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$sudo apt-get install --no-install-recommends libboost-all-dev
$sudo apt-get install libatlas-base-dev
接下来,跟着这个博客无闹apt!!!装装装
https://blog.csdn.net/Zmoudong/article/details/77914395
需要安装的东西:
snappy
Snappy 是一个 C++
的用来压缩和解压缩的开发包。其目标不是最大限度压缩或者兼容其他压缩格式,而是旨在提供高速压缩速度和合理的压缩率。Snappy 比 zlib
更快,但文件相对要大 20% 到 100%。在 64位模式的 Core i7 处理器上,可达每秒 250~500兆的压缩速度。
leveldb
Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法.
gflags
gflags是google的一个开源的处理命令行参数的库,使用c++开发,具备python接口,可以替代getopt。
gflags使用起来比getopt方便,但是不支持参数的简写。
glog
Google Glog 是一个C++语言的应用级日志记录框架,提供了 C++ 风格的流操作和各种助手宏。
szip
szip是一个快速,优良,跨平台的开源数据压缩程序。
lmdb
lmdb是openLDAP项目开发的嵌入式(作为一个库嵌入到宿主程序)存储引擎。
hdf5
Hierarchical Data Format(HDF),可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。大多数普通计算机都支持这种文件格式。
opencv
OpenCV的全称是:Open Source Computer Vision
Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac
OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++
类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and
MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#,Ch, Ruby的支持。
protobuf
protocolbuffer是google 的一种数据交换的格式,它独立于语言,独立于平台。google
提供了多种语言的实现:java、c#、c++、go 和
python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml
进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。
Boost
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。
好了在编译的时候,你可能会遇到的问题!!
安装protobuf
PROTOC src/caffe/proto/caffe.proto
make: protoc: Command not found
Makefile:638: recipe for target '.build_release/src/caffe/proto/caffe.pb.cc' failed
make: *** [.build_release/src/caffe/proto/http://caffe.pb.cc] Error 127
...........
下载安装:https://github.com/google/protobuf/releases/tag/v2.5.0
./autogen.sh: 4: ./autogen.sh: autoreconf: not found
上网查了查说是我的版本没有安装automake工具。解决方法如下
先后执行命令:
1. sudo apt-get install autoconf
2. sudo apt-get install automake
3.sudo apt-get install libtool
再次执行OK了。
./autogen.sh
./configure
make -j 24
sudo make install
安装glog和gflags
https://www.cnblogs.com/burningTheStar/p/6986048.html
安装hdf5
https://blog.csdn.net/luoying_1993/article/details/53228473
“fatal error: hdf5.h: 没有那个文件或目录”解决方法
参考自http://blog.csdn.net/hongye000000/article/details/51043913
Step 1
在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
Step 2
在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
NVCC src/caffe/layers/hdf5_output_layer.cu
nvcc fatal : Unsupported gpu architecture 'compute_20'
Makefile:594: recipe for target '.build_release/cuda/src/caffe/layers/hdf5_output_layer.o' failed
make: *** [.build_release/cuda/src/caffe/layers/hdf5_output_layer.o] Error 1
注释掉:
-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21
错误类型:
LD -o .build_release/lib/libcaffe.so
/usr/bin/ld:/usr/local/lib/libgflags.a(gflags.cc.o):
relocation R_X86_64_32S against`.rodata' can not be used when making a
shared object; recompile with -fPIC
/usr/local/lib/libgflags.a: error addingsymbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [.build_release/lib/libcaffe.so]Error 1
解决:
这东西真的是每次编译都会遇到各种问题,心累。
·················································
欢迎关注课程:
热门评论
老师您好 我编译caffe出现这个问题是什么原因啊
#error This file requires compiler and library support for the \
^
In file included from ./include/caffe/util/math_functions.hpp:11:0,
from ./include/caffe/layer.hpp:12,
from ./include/caffe/net.hpp:12,
from ./include/caffe/solver.hpp:7,
from src/caffe/solver.cpp:7:
./include/caffe/util/mkl_alternate.hpp:14:19: fatal error: cblas.h: 没有那个文件或目录
#include <cblas.h>
^
compilation terminated.
Makefile:591: recipe for target '.build_release/src/caffe/solver.o' failed
make: *** [.build_release/src/caffe/solver.o] Error 1