经验分享让caffe-cudnn8支持yolov3
Posted 极智视界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经验分享让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 !
以上是关于经验分享让caffe-cudnn8支持yolov3的主要内容,如果未能解决你的问题,请参考以下文章
github优秀项目分享:基于yolov3的轻量级人脸检测增值税发票OCR识别 等8大项目
[OpenCV实战]8 深度学习目标检测网络YOLOv3的训练
高大上的YOLOV3对象检测算法,使用python也可轻松实现