Caffe修炼之路(1)——无伤安装Caffe组件
(一)一入Caffe深似海,从此Python是路人
上面这句话当然是开玩笑的啦,不用Python是不可能的,这辈子都不可能的!!!
暑假要去京东实习了,那边的前辈告知可能之后用Caffe比较多,所以不得不忍痛先丢下我可爱的TensorFlow而开始修炼Caffe,Caffe作为以C++为构建语言的框架,其训练速度和运行速度在一定程度上要优于TensorFlow,使其对部署端的硬件要求较小,总而言之,Caffe也是一个很棒的框架。
(二)开始安装
在开始安装之前,我参考对比了网上很多的教程,五花八门的,也相对复杂,但无非分为装在Windows系统上和Ubuntu系统上,对比之后我建议大家还是不要在Windows系统上转,因为真的非常麻烦,还要安装MS Studio去编译Caffe,相信我,在Ubuntu上更加简单,而且不容易出错,以下就以Ubuntu 16.04为例对Caffe进行安装。
(1)下载Caffe源码
到Github下载源码:
得到压缩包后输入:
unzip caffe-master.zip
得到解压后的文件夹caffe-master,获取文件夹读写权限:
chmod -R 777 /caffe-master/
(2)安装依赖库
根据官方文档键入下列命令安装依赖库
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev
sudo apt-get install libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
如果需要使用GPU加速,还需要安装CUDA 8+CuDnn组件,网上的教程很多,在这就不赘述了。
继续键入:
# glog
wget https://github.com/google/glog/archive/v0.3.3.tar.gz
tar zxvf v0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
# lmdb
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
make && make install
(3)安装OpenCV
首先安装ffmpeg,键入下列命令安装依赖库:
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev libxext-dev libxfixes-dev
下载并解压ffmpg压缩包:
wget https://ffmpeg.org/releases/ffmpeg-4.1.3.tar.bz2
# 进入压缩包在的目录内
tar -xjvf ffmpeg-3.4.1.tar.bz2 # 解压
cd ffmpeg-3.4.1 # 进入解压后目录
配置ffmpg并安装:
# ./configure配置
./configure --enable-nonfree --enable-pic --enable-shared --disable-asm
make
make install
下载OpenCV:
git clone https://github.com/jayrambhia/install-opencv
运行安装脚本
cd Ubuntu
bash opencv_latest.sh
(4)更改配置文件
进入caffe-master文件夹,首先将Makefile.config.example的内容复制到Makefile.config:
cd caffe
sudo cp Makefile.config.example Makefile.config
打开并修改Makefile.config文件:
gedit Makefile.config
将以下几行解除注释:
# CPU_ONLY := 1
# OPENCV_VERSION := 3
# WITH_PYTHON_LAYER := 1
并替换:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
保存后退出,然后开始修改Makefile文件,注意这和上面的有区别 ,不是Makefile.config。
gedit Makefile
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
(5)开始编译
在Cafffe-master文件下,执行:
make all
系统开始编译:
(三)安装测试
在Cafffe-master文件下,执行:
make runtest
打印测试内容,测试通过则安装完成:
(四)推荐阅读
有不少UP主对常见的安装问题进行了总结,推荐大家看一看,说不定能找到你的错误:
https://blog.csdn.net/zhixiting5325/article/details/90141218
https://blog.csdn.net/shelly1072/article/details/79076484
https://blog.csdn.net/lgh0824/article/details/81564789
http://www.360doc.com/content/17/0720/18/44420101_672888625.shtml
https://blog.csdn.net/u014381600/article/details/54090467
https://blog.csdn.net/jessir/article/details/71195115