上一章描述的是原版的caffe环境搭建,这一章介绍caffe ssd环境搭建,和上一章稍有不同。
环境:
系统:Ubuntu16.04
显卡:NVIDIA GTX2070
搭建步骤:
1、下载caffe ssd
SSD采用的是在caffe文件夹中内嵌例程的方式,作者改动了原版caffe,所以你需要把原来的caffe文件夹移除,git命令会新建一个带有SSD程序的caffe文件夹,当然,这个新的caffe要重新编译一次。
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
随便说一下, Caffe 框架训练属于自己的 SSD 模型了, SSD 的官方实现的 github 地址为:https://github.com/weiliu89/caffe/tree/ssd
2、修改 Makefile.config
(1`)首先将Makefile.config.example的内容复制到Makefile.config
cd caffe
cp Makefile.config.example Makefile.config
(2) 修改 Makefile.config里面的内容
sudo gedit Makefile.config
修改如下:
1.若使用cudnn,取消“# USE_CUDNN := 1” 前的注释即:USE_CUDNN := 1
2.若使用opencv3.x,取消“# OPENCV_VERSION := 3” 前的注释,即:OPENCV_VERSION := 3
3.取消“# WITH_PYTHON_LAYER := 1” 前的注释。即 WITH_PYTHON_LAYER := 1
4.加入hdf5的目录:
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
3、Makefile修改
sudo gedit Makefile
修改如下:
第一处:
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
第二处:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
修改为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
第三处:
LIBRARIES += boost_thread stdc++后加boost_regex
修改为:
LIBRARIES += boost_thread stdc++ boost_regex
4、 编译caffe
make all -j16
make py -j16
make test -j16
make runtest -j16
make runtest -j16之后的图:
完成。
遇到的问题:
问题1:
在执行make all -j16时出现:
LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
/usr/bin/ld: cannot find -lopenblas
collect2: error: ld returned 1 exit status
Makefile:569: recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1
原因:缺少openblas
解决:
安装openblas就可以了:
sudo apt-get install libopenblas-dev
问题2:
在执行make runtest -j16时出现:
*** Error in `.build_release/tools/caffe': free(): invalid pointer: 0x0000000000e282c0 ***
Makefile:529: recipe for target 'runtest' failed
make: *** [runtest] Aborted (core dumped)
原因:很可能是缺少libtcmalloc-minimal4库,
解决:
首先安装
sudo apt-get install libtcmalloc-minimal4
然后打开~/.bashrc文件
sudo gedit ~/.bashrc
在文件末尾添加如下代码:
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"
最后重新载入环境变量即可
source ~/.bashrc
最后重新编译。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:《caffe学习之路》第三章:Ubuntu16.04 caffe ssd环境搭建 - Python技术站