ubuntu18.04 安装caffe

1, 添加依赖

sudo apt-get install -y vim make cmake gcc g++ git  python-pip 
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev protobuf-compiler 
sudo apt-get install -y libhdf5-serial-dev libboost-all-dev libhdf5-serial-dev libatlas-base-dev  
sudo apt-get install -y liblmdb-dev libboost-all-dev libopencv-dev libgflags-dev libgoogle-glog-dev 
# sudo apt-get install libopenblas-dev

2,安装python相关包

sudo apt-get install -y libopencv-dev python-opencv python3-pip python-pandas python-sympy 
sudo apt-get install -y python-numpy python-scipy python-matplotlib ipython python-nose

3,caffe,用root权限,安装在root家目录
3.1 下载caffe源码

git clone https://github.com/BVLC/caffe.git
# git clone https://gitee.com/luolinll1212/caffe.git
cd caffe

3.2 添加upsample和mish

git clone https://github.com/Linby1103/Dark2Caffe
# git clone https://gitee.com/luolinll1212/Dark2Caffe.git

caffe_layers/mish_layer/mish_layer.hpp
caffe_layers/upsample_layer/upsample_layer.hpp 
-> caffe/include/caffe/layers/.

caffe_layers/mish_layer/mish_layer.cpp和mish_layer.cu
caffe_layers/upsample_layer/upsample_layer.cpp和upsample_layer.cu
-> caffe/src/caffe/layers/.

vim src/caffe/proto/caffe.proto
// LayerParameter next available layer-specific ID: 147 (last added: recurrent_param)
message LayerParameter {
  optional TileParameter tile_param = 138;
  optional VideoDataParameter video_data_param = 207;
  optional WindowDataParameter window_data_param = 129;
++optional UpsampleParameter upsample_param = 149; //added by chen for Yolov3, make sure this id 149 not the same as before.
++optional MishParameter mish_param = 150; //added by chen for yolov4,make sure this id 150 not the same as before.
}

// added by chen for YoloV3
++message UpsampleParameter{
++  optional int32 scale = 1 [default = 1];
++}

// Message that stores parameters used by MishLayer
++message MishParameter {
++  enum Engine {
++    DEFAULT = 0;
++    CAFFE = 1;
++    CUDNN = 2;
++  }
++  optional Engine engine = 2 [default = DEFAULT];
++}

3.3 配置python
安装位置,anaconda/bin/python,anaconda-python3.7

cd python
cat requirements.txt    # 查看安装caffe的依赖
pip install --upgrade pip
for req in $(cat requirements.txt); do pip install $req;done

4,配置make.config,编译准备

pwd
  /home/rose/work/caffe
cp Makefile.config.example Makefile.config
sudo gedit Makefile.config

4.1 基本配置,cuda与cpu,opencv版本号

1,CPU_ONLY :=1,去掉前面#符号,CPU版本
2,删除Makefile.config,包含compute_20的两行
3, OPENCV := 3

4.2,anaconda_home,python_include

ANACONDA_HOME := $(HOME)/anaconda3
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
		$(ANACONDA_HOME)/include/python3.7m \
		$(ANACONDA_HOME)/lib/python3.7/site-packages/numpy/core/include

4.3,python_lib,python_libraries

PYTHON_LIB := $(ANACONDA_HOME)/lib
PYTHON_LIBRARIES := boost_python3 python3.7m

4.4 hdf5
Whatever else you find you need goes here.

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/hdf5/serial

4.5,编译opencv配置

USE_PKG_CONFIG :=
LIBRARIES += glog gflags protobuf leveldb snappy \
       lmdb boost_system hdf5_hl hdf5 m \
       opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs \
       boost_thread stdc++ boost_regex

5,编译caffe
5.1 编译指令

pwd
  /home/rose/work/caffe
sudo make all -j 8
sudo make pycaffe -j 8 
sudo make test -j 8
sudo make runtest -j 8

执行以上步骤,编译成功
include目录,build/include
lib       目录,build/lib
tools   目录,build/tools

5.2 make runtest报错,anaconda/lib -> /usr/lib

su - root
cd /home/rose/anaconda3/lib
# rm -rf `ls -l | grep lrwxrwxrwx | awk '{print $9}'` # 删除所有软连接
# for req in $(ls -l | grep .so | awk '{print $9}');do echo ${req:0:len-6}; done # 修改软连接,2个
cp `ls | grep so` /usr/lib    # runtest使用,提前使用会报错,anaconda/lib -> /usr/lib

6,训练MNIST
6.1 添加用户环境变量

vim ~/.bashrc
export PYTHONPATH=/home/rose/work/caffe/python:$PYTHONPATH
source ~/.bashrc

6.2 添加到系统python3.6

cp -r ~/software/caffe/python/caffe /usr/local/lib/python3.6/dist-packages # caffe中python -> 系统的python3.6
vim ~/.bashrc # 配置链接库
# caffe
CAFFE_HOME=/home/rose/software/opt/caffe/.build_release
export LD_LIBRARY_PATH=$CAFFE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$CAFFE_HOME/tools:$PATH
source ~/.bashrc # 控制台使用

6.3 mnist数据,网络可视化和训练

cd caffe
bash data/mnist/get_mnist.sh # 下载mnist数据,4个基础数据
bash examples/mnist/create_mnist.sh # 转换为caffe格式的数据,lmdb数据格式
python python/draw_net.py mnist.prototxt aa.png --rankdir=BT|LR # 查看网络结构文件,从下到上,从左到右
bash .build_release/tools/caffe time -model hbk_mnist.prototxt -iterations 10 # caffe使用cpu迭代10次
bash .build_release/tools/caffe time -model hbk_mnist.prototxt -iterations 10 -gpu 0 # caffe使用gpu迭代10次
bash .build_release/tools/caffe train  -solver hbk_mnist_solver.prototxt # 训练模型,运行solver
bash .build_release/tools/caffe train  -solver hbk_mnist_solver.prototxt 2>&1 | tee a.log # 训练模型,运行solver保存a.log文件

6.4 测试

import caffe
caffe.set_device(0)
caffe.set_mode_gpu()

7,c++部署
7.1 报错:fatal error: caffe/proto/caffe.pb.h: No such file or directory #include “caffe/proto/caffe.pb.h”

cd .build_release
mkdir -p include/caffe/proto
cp src/caffe/proto/caffe.pb.h include/caffe/proto

版本问题,文件位置不对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值