极智AI | 让caffe-cudnn8支持yolov3

  本教程详细记录了在caffe-cudnn8源码中添加upsample层、yolo层的方法,以支持caffe版本的yolov3模型。可能涉及的应用场景包括:caffe版本yolo系列模型的设计与训练,darknet yolo模型转换到caffe模型(以方便部署到海思、昇腾、寒武纪这些设备上)。


1、确认caffe的安装环境

  在升级caffe-cudnn8-yolo之前你得确保你的工作环境能够安装原版的caffe,所以建议你先走一遍的我的教程:
【经验分享】ubuntu cudnn8 源码编译caffe


2、下载caffe-cudnn8包

  caffe-cudnn8源码:Jeremy-J-J/caffe-cudnn8

git clone https://github.com/Jeremy-J-J/caffe-cudnn8.git

3、添加upsample层

  首先下载upsample的代码: Jeremy-J-J/upsample_yolo

git clone -b upsampe_yolo https://github.com/Jeremy-J-J/caffe-cudnn8.git

  添加upsample的主要步骤如下:

1. upsample_layer.hpp放入include/caffe/layers文件夹里

2. upsample_layer.cpp和upsample_layer.cu放入src/caffe/layers文件夹里

3. 打开src/caffe/proto/caffe.proto,在message LayerParameter层添加upsample层的ID

# message LayerParameter大约在430行,在{}最后添加如下:
message LayerParameter {
  .....
  optional UpsampleParameter upsample_param =149;
}

# 在caffe.proto中添加upsample层的参数:
message UpsampleParameter{
  optional int32 scale =1[default=2];
}

4、添加yolo层

  下载yolo的代码: Jeremy-J-J/upsample_yolo

git clone -b upsample_yolo https://github.com/Jeremy-J-J/caffe-cudnn8.git

  添加yolo层的的步骤和添加upsample的步骤一致:

1. yolov3_layer.hpp放入include/caffe/layers文件夹里

2. yolov3_layer.cpp和yolov3_layer.cu放入src/caffe/layers文件夹里

3. 打开src/caffe/proto/caffe.proto,在message LayerParameter层添加yolo层的ID

message LayerParameter {
  .....
  optional Yolov3Parameter yolov3_param = 151;
}

# 在caffe.proto中添加upsample层的参数:
message Yolov3Parameter
{
  optional uint32 classes = 1 [default = 80];
  optional float thresh = 2 [default = 0.3];
}

5、编译配置

  参考【经验分享】ubuntu cudnn8 源码编译caffe中caffe-cudnn8的编译配置过程


6、编译

make all -j8 
make test -j8 
make runtest -j8 
make pycaffe  # 编译python接口

vim ~/.bashrc 

# 加入如下,路径根据实际修改
export PYTHONPATH=$PYTHONPATH:/home/0_env/caffe/python 

source ~/.bashrc

 当然我肯定是一个非常nice的博主,以上的配置都帮你准备好了,你只要clone我github项目caffe-cudnn8中的分支caffe-cudnn8-yolo,就可以开心、愉快的玩耍caffe版本的yolov3了。


 收工~



扫描下方二维码即可关注我的微信公众号【极智视界】,获取更多AI经验分享,让我们用极致+极客的心态来迎接AI !

你可能感兴趣的:(极智AI,caffe,cudnn,深度学习,ubuntu,github)