一 caffe开源路径:
caffe: http://caffe.berkeleyvision.org/tutorial/interfaces.html
编译命令:cp Makefile.config.bak Makefile.config; make clean; make
1 caffe-master/Makefile.config 修改
USE_OPENCV :=1
USE_LMDB :=1
2 caffe-master/Makefile 修改
INCLUDE_DIRS += /home/protobuf-2.4.1/src/
INCLUDE_DIRS += /home/boot_1_67_0/
INCLUDE_DIRS += /home/gflags-master/include
INCLUDE_DIRS += /home/CBLAS/include
INCLUDE_DIRS += /home/hdf5-1.10.1/src
INCLUDE_DIRS += /home/glog-master/src/
INCLUDE_DIRS += /home/hdf5-1.10.1/hl/src
INCLUDE_DIRS += /home/opencv-3.2.0/
INCLUDE_DIRS += /home/opencv-3.2.0/modules/core/include/
INCLUDE_DIRS += /home/opencv-3.2.0/modules/highgui/include/
INCLUDE_DIRS += /home/opencv-3.2.0/modules/imgproc/include/
INCLUDE_DIRS += /home/opencv-3.2.0/modules/imgcodecs/include/
INCLUDE_DIRS += /home/opencv-3.2.0/modules/videoio/include/
INCLUDE_DIRS += /home/opencv-3.2.0/build
INCLUDE_DIRS += /home/lmdb-mdb/libraries/liblmdb
LDFLAGS += -L /home/xx/lib
LDFLAGS += -L /user/lib64
DYNAMIC_NAME=.build_release/lib/libcaffe.so.1.0.0
$(DYNAMIC_NAME):
$(TOOL_BINS):
$(CXX) -Wl,--start-group -lboost_exception $(LDFLAGS) -lz -ldl -lgfortran -Wl,--end-group
LDFLAGS += -lopencv_imgcodecs -lz -ldl -lgfortran -lboost_exception -lboost_system
$(PROTO_BUILD_DIR):
/home/xx/tools/bin/protoc
三 相关库安装
1 lmdb
克隆项目,git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
make && make install
3 linux下安装boost及boost::thread的使用
4 cmake下载
5 opencv下载:https://github.com/opencv/opencv/tree/3.4.1
OpenCV 3.1下载 ippicv_linux_20151201失败
opecv编译:
1> mkdir build;cd build;cmake ..
2>将下载的ippicv_linux_20151201.tgz拷贝到opencv-3.2.0/3rdparty/ippicv/downloads/linux-xx/目录下
3>cmake .. ;make
7 Linux 安装 cblas, lapack, lapacke libblas.a=libatlas.a
blas: Basic Linear Algebra Subprograms : 基础线性代数子程序
hdf5下载:
https://support.hdfgroup.org/HDF5/release/obtainsrc.html
1 #export LD_LIBRARY_PATH=/home/xx/tools/lib --保存编译出来的相关库,如opencv,lmdb等
#./build/tools/caffe.bin
caffe-master/build_train.sh --生成ldmb的脚本
#/usr/bin/enc
DATA=examples/images
echo "create train.txt"
rm -rf $DATA/train.txt
find $DATA -name *cat.jpg | cut -d '/' -f 3 | sed "s/$/ 1/">>$DATA/train.txt
find $DATA -name *bike.jpg | cut -d '/' -f 3 | sed "s/$/ 2/">>$DATA/tmp.txt
cat $DATA/tmp.txt>>$DATA/train.txt
rm -rf $DATA/tmp.txt
echo "done"
sleep 2
echo "create lmdb.sh"
rm -rf $DATA/img_train_lmdb
./build/tools/covert_imageset --shuffle\ --注意换行后,下一行前面要加空格
--resize_height=256 --resize_width=256\
$DATA/ $DATA/train.txt $DATA/img_train_lmdb
echo "done"
安装Python接口: make pycaffe
import sys
caffe_root='/home/program/caffe'
sys.path.insert(0, caffe_root + '/python')
import caffe
amb64:python-dev: https://packages.debian.org/sid/python-dev
问:python-dev是什么?为什么安装了python后有时还要安装python-dev?
linux发行版通常会把类库的头文件和相关的pkg-config分拆成一个单独的xxx-dev(el)包. //pkg=package,包裹
以python为例, 以下情况你是需要python-dev的
你需要自己安装一个源外的python类库, 而这个类库内含需要编译的调用python api的c/c++文件
你自己写的一个程序编译需要链接libpythonXX.(a|so)
(注:以上不含使用ctypes/ffi或者裸dlsym方式直接调用libpython.so)
其他正常使用python或者通过安装源内的python类库的不需要python-dev.
五 其他