全程安装caffe真是狗哦!各种报错。。。
这里的环境是Ubuntu16.04+CUDA10.1+cudnn7.5,相关环境搭建可以参考我之前的文章,这里主要讲caffe的安装。
一、下载caffe
git clone git://github.com/BVLC/caffe.git
我先把编译指令贴出来吧,但不要着急编译,急切想make的同学也可以试试自己的环境和依赖库安装情况^_^···
make all -j8
二、问题汇总
好了,下面汇总所有碰到的问题:
Makefile:649: recipe for target '.build_release/src/caffe/proto/caffe.pb.cc' failed
Makefile:605: recipe for target '.build_release/cuda/src/caffe/solvers/adam_solver.o' failed
我这边安装时没有及时截图,就先上传这两个吧
三、修改配置文件再安装依赖库
修改Makefile.config文件中参数配置,需要修改的地方我在下面贴出来,也可以下载参考我修改的参数配置Makefile.config
一、修改Makefile.config中参数
1.应用 cudnn
将
#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
2.应用 opencv 版本
将
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
3.使用 python 接口
将
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
4.修改 python 路径
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-g
5.hdf5.h头文件
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
四、安装依赖库
1.安装Boost库
报错:
./include/caffe/common.hpp:XX:XX: fatal error: boost/shared_ptr.hpp: 没有那个文件或目录
#include <boost/shared_ptr.hpp>
Makefile:581: recipe for target '.build_release/src/caffe/blob.o' failed
apt-get install libboost-all-dev
2. 安装glog、gflags、lmdb、proto等一系列依赖库:
报错:
./include/caffe/util/device_alternate.hpp:XX:XX: fatal error: google/protobuf/stubs/common.h: 没有那个文件或目录
#include <google/protobuf/stubs/common.h>
^~~~~~~~~~~~~
compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/blob.o' failed
3.安装proto
apt-get install libprotobuf-dev protobuf-c-compiler protobuf-compiler
4.安装glog
apt-get install libgoogle-glog-dev
5.安装goflags
apt-get install libgflags-dev
6.安装lmdb:
apt-get install liblmdb-dev
7.安装数据库leveldb:
apt-get install libleveldb-dev
8.安装snappy:
apt-get install libsnappy-dev
9.安装hdf5.h头文件
apt-get install libhdf5-\*
10.安装libatlas
apt-get install libatlas-base-dev
11.安装opencv
apt-get install libopencv-dev
链接问题
报错:
Makefile:572: recipe for target '.build_release/lib/libcaffe.so.1.0.0' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1
修改:在Makefile.config中添加hdf5相关参数,也可以参考我的Makefile.config参数设置
再链接libcaffe库:
sudo ln -s /usr/lib/x86_64-linux-gnu/libcaffe.so.1.0.0 /usr/lib/libcaffe.so.1.0.0
sudo ln -sf /usr/lib/x86_64-linux-gnu/libboost_system.so.1.62.0 /usr/lib/libboost_system.so
这次make,终于。。。。。
成功了。。。
CXX src/caffe/layers/loss_layer.cpp
CXX src/caffe/layers/hdf5_data_layer.cpp
CXX src/caffe/layers/reshape_layer.cpp
CXX src/caffe/layers/batch_norm_layer.cpp
CXX src/caffe/layers/window_data_layer.cpp
CXX src/caffe/layers/multinomial_logistic_loss_layer.cpp
CXX src/caffe/layers/input_layer.cpp
CXX src/caffe/layers/flatten_layer.cpp
CXX src/caffe/layers/sigmoid_layer.cpp
CXX src/caffe/layers/base_data_layer.cpp
CXX src/caffe/layers/threshold_layer.cpp
CXX src/caffe/layers/cudnn_lcn_layer.cpp
CXX src/caffe/layers/batch_reindex_layer.cpp
CXX src/caffe/layers/swish_layer.cpp
CXX src/caffe/layers/power_layer.cpp
CXX src/caffe/layers/relu_layer.cpp
CXX src/caffe/layers/cudnn_conv_layer.cpp
CXX src/caffe/layers/cudnn_tanh_layer.cpp
CXX src/caffe/layers/inner_product_layer.cpp
CXX src/caffe/layers/tanh_layer.cpp
CXX src/caffe/layers/data_layer.cpp
CXX src/caffe/layers/silence_layer.cpp
CXX src/caffe/layers/elu_layer.cpp
CXX src/caffe/layers/eltwise_layer.cpp
CXX src/caffe/layers/filter_layer.cpp
CXX src/caffe/layers/dummy_data_layer.cpp
CXX src/caffe/layers/log_layer.cpp
CXX src/caffe/layers/dropout_layer.cpp
CXX src/caffe/layers/contrastive_loss_layer.cpp
CXX src/caffe/layers/sigmoid_cross_entropy_loss_layer.cpp
CXX src/caffe/layers/lrn_layer.cpp
CXX src/caffe/layers/cudnn_relu_layer.cpp
CXX src/caffe/layers/concat_layer.cpp
CXX src/caffe/layers/neuron_layer.cpp
CXX src/caffe/layers/hinge_loss_layer.cpp
CXX src/caffe/layers/mvn_layer.cpp
CXX src/caffe/layers/cudnn_softmax_layer.cpp
CXX src/caffe/layers/softmax_loss_layer.cpp
CXX src/caffe/layers/absval_layer.cpp
CXX src/caffe/layers/argmax_layer.cpp
CXX src/caffe/layers/accuracy_layer.cpp
CXX src/caffe/layers/im2col_layer.cpp
CXX src/caffe/layers/recurrent_layer.cpp
CXX src/caffe/layers/hdf5_output_layer.cpp
CXX src/caffe/layers/split_layer.cpp
CXX src/caffe/layers/lstm_layer.cpp
CXX src/caffe/layers/spp_layer.cpp
CXX src/caffe/layers/bias_layer.cpp
CXX src/caffe/layers/pooling_layer.cpp
CXX src/caffe/layers/bnll_layer.cpp
CXX src/caffe/layers/prelu_layer.cpp
CXX src/caffe/layers/cudnn_pooling_layer.cpp
CXX src/caffe/layers/cudnn_sigmoid_layer.cpp
CXX src/caffe/layers/cudnn_lrn_layer.cpp
CXX src/caffe/layers/scale_layer.cpp
CXX src/caffe/layers/rnn_layer.cpp
CXX src/caffe/layers/lstm_unit_layer.cpp
CXX src/caffe/layers/image_data_layer.cpp
CXX src/caffe/layers/deconv_layer.cpp
CXX src/caffe/layers/memory_data_layer.cpp
CXX src/caffe/layers/euclidean_loss_layer.cpp
CXX src/caffe/layers/exp_layer.cpp
CXX src/caffe/layers/softmax_layer.cpp
CXX src/caffe/layers/base_conv_layer.cpp
CXX src/caffe/layers/cudnn_deconv_layer.cpp
CXX src/caffe/solver.cpp
CXX src/caffe/util/im2col.cpp
CXX src/caffe/util/signal_handler.cpp
CXX src/caffe/util/upgrade_proto.cpp
CXX src/caffe/util/db_leveldb.cpp
CXX src/caffe/util/db_lmdb.cpp
CXX src/caffe/util/benchmark.cpp
CXX src/caffe/util/math_functions.cpp
CXX src/caffe/util/blocking_queue.cpp
CXX src/caffe/util/db.cpp
CXX src/caffe/util/insert_splits.cpp
CXX src/caffe/util/io.cpp
CXX src/caffe/util/cudnn.cpp
CXX src/caffe/util/hdf5.cpp
CXX src/caffe/blob.cpp
CXX src/caffe/syncedmem.cpp
CXX src/caffe/internal_thread.cpp
CXX src/caffe/net.cpp
CXX src/caffe/layer.cpp
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0
CXX/LD -o .build_release/tools/extract_features.bin
CXX/LD -o .build_release/tools/caffe.bin
CXX/LD -o .build_release/tools/convert_imageset.bin
CXX/LD -o .build_release/tools/upgrade_net_proto_text.bin
CXX/LD -o .build_release/tools/upgrade_net_proto_binary.bin
CXX/LD -o .build_release/tools/compute_image_mean.bin
CXX/LD -o .build_release/tools/upgrade_solver_proto_text.bin
CXX/LD -o .build_release/examples/mnist/convert_mnist_data.bin
CXX/LD -o .build_release/examples/cifar10/convert_cifar_data.bin
CXX/LD -o .build_release/examples/siamese/convert_mnist_siamese_data.bin
CXX/LD -o .build_release/examples/cpp_classification/classification.bin
五、测试caffe是否安装成功
make test
make runtest
nice~~~~~~
成功~~~
六、安装Python接口
1.安装anaconda包
wget https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda2-2.5.0-Linux-x86_64.sh
bash Anaconda2-2.5.0-Linux-x86_64.sh
2.编译pycaffe
make pycaffe
完成~~~~~~~~~~~~~~~~~~~~~