参考网站:
http://caffe.berkeleyvision.org/install_yum.html(bvlc官网说明)
https://www.zybuluo.com/hanxiaoyang/note/364680
http://blog.sina.com.cn/s/blog_990865340102vewt.html (主要参考)
http://stackoverflow.com/questions/31395729/how-to-enable-multithreading-with-caffe
(多核训练)
1.安装依赖
-
$ sudo yum install protobuf-devel
-
$ sudo yum install level-devel
-
$ sudo yum install snappy-devel
-
$ sudo yum install opencv-devel
-
$ sudo yum install boost-devel
-
$ sudo yum install hdf5-devel
-
$ sudo yum install atlas-devel
-
-
$ sudo yum install gflags-devel
-
$ sudo yum install glog-devel
-
$ sudo yum install lmdb-devel
某些源可能找不到
可以先安装以下命令
-
$ sudo yum install epel-release
其中glog仍然找不到,则需要进行手动安装
-
# glog
-
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/google-glog/glog-0.3.3.tar.gz
-
tar zxvf glog-0.3.3.tar.gz
-
cd glog-0.3.3
-
./configure
-
make && make install
2.安装opecv-2.4.13
见redhat配置opencv
3.编译配置boost_1_59_0
-
Tar –zxvf boost_1_59_0.tar.gz
-
cd boost boost_1_59_0
-
./boostrap.sh
-
./b2
-
sudo ./b2 install –prefix=/usr/local/boost_hy
配置参数
/usr/local/include
/usr/local/lib
可以将配置文件写到
-
echo "/usr/local/lib" >> /etc/ld.so.conf
-
ldconfig
3.下载源码
-
$ git clone https://github.com/bvlc/caffe.git
-
$ cd caffe/
-
$ mv Makefile.config.example Makefile.config
4.修改Makefile.config
CPU_ONLY := 1
BLAS := atlas
BLAS_INCLUDE := /usr/include/atlas
BLAS_LIB := /usr/lib64/atlas
BOOST_ROOT := /usr/local/boost_hy
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/boost_hy/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib64 /usr/local/boost_hy/lib
5.编译
-
make all
问题1:
./include/caffe/util/io.hpp: In function 'void caffe::MakeTempDir(std::string_)':
./include/caffe/util/io.hpp:27: error: 'temp_directory_path' is not a member of 'boost::filesystem'
./include/caffe/util/io.hpp:29: error: 'unique_path' is not a member of 'boost::filesystem'
应该是boost版本问题,要1.59.0以上的。但说明是1.54以上版本就行。
明明装了1.59版本的boost还是不行。
-
rpm –qa boost*
发现许多包还是1.41版本的,可能是系统依赖的包。因此,重新安装boost,指定安装路径,如果不指定的话,lib会放在
/usr/local/lib, include会放在/usr/local/include。
-
./b2 install –prefix=/usr/local/boost_hy
Boost_hy下回出现include和lib。
在caffe目录下Makefile.config中添加如下配置:
BOOST_BOOT:=/usr/local/boost_hy
INCLUDE_DIRS:=/usr/local/boost_hy/include
LIB_DIRS:=/usr/local/boost_hy/lib
https://groups.google.com/forum/#!topic/caffe-users/h_hXnUbrurk
https://github.com/BVLC/caffe/issues/3686
问题2:
使用命令
-
sudo make all
时,出现以下问题:
.build_release/src/caffe/proto/caffe.pb.h:17:2: error: #error This file was generated by an older version of protoc which is
.build_release/src/caffe/proto/caffe.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please
.build_release/src/caffe/proto/caffe.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.
/usr/bin/protoc –version发现是1.4.*版本的。而至少需要1.5版本的。
如果不用sudo的话,可能用到的是本目录下的protoc,
-
make all //不要用sudo执行
问题3
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for –lc
This typically arises due to an architecture mismatch - in this case it seems that the build system attempts to link a 64bit object files with a 32bit library
问题是64为系统编译,却到32位的lib包中去寻找,解决:
更改caffe目录下Makelist.config
将所有的/usr/lib都改为/usr/lib64
-
make clean
-
make all
终于编译成功,截图如下:
6. 训练mnist
问题:
[wuhairong@zhsw-ws02 caffe-master]$ make runtest .build_release/tools/caffe ERROR: flag 'tab_completion_word' was defined more than once (in files 'src/gflags_completions.cc' and '/home/wuhairong/gflags-master/src/gflags_completions.cc').make: *** [runtest] 错误 1
https://groups.google.com/forum/#!msg/caffe-users/bqDam0xuT3E/78wQnx3memAJ
gflags安装了两次,要将gflags文件卸载之后再安装。利用yum命令即可。
-
sudo yum remove gflags
-
sudo yum install gflags
然后重新编译caffe
-
make clean
-
make all
-
make test
-
make runtest
-
make matcaffe
-
make pycaffe
开始训练
在caffe目录下执行
-
sh data/get_mnist.sh
-
sh examples/mnist/create_mnist.h
注意:如果出现错误,可能是因为数据下载不正确。
-
sh examples/mnist/train_lenet.sh
静候结果。。。
多核训练
http://stackoverflow.com/questions/31395729/how-to-enable-multithreading-with-caffe
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:redhat配置caffe - Python技术站