darknet yolov3 yolov4转caffe 教程
生活随笔
收集整理的這篇文章主要介紹了
darknet yolov3 yolov4转caffe 教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在目標檢測任務中,我們常使用yolov3, yolov4作為目標檢測模型,在實際部署工作中,我們很多邊緣設備需要把模型轉換成caffe。在次記錄下轉換過程。
我們需要在caffe框架中,添加所需要的層。這個轉換工具可以參考github上一位大佬項目:
把大佬mish_layer文件中的mish_layer.hpp和upsample_layer文件中的upsample_layer.hpp復制到安裝caffe目錄下的include/caffe/layers/文件夾中。
├── mish_layer │ ├── mish_layer.cpp │ ├── mish_layer.cu │ └── mish_layer.hpp ├── pooling_layer │ └── pooling_layer.cpp └── upsample_layer├── upsample_layer.cpp├── upsample_layer.cu└── upsample_layer.hpp把大佬mish_layer文件中的mish_layer.cpp、mish_layer.cu 和 upsample_layer文件中的
upsample_layer.cpp、upsample_layer.cu復制到caffe目錄下的/src/caffe/layers/文件夾中。
最后在caffe目錄下的/src/caffe/proto/caffe.proto。打開這個文件,添加以下內容:
在423行下面添加:
在最后一行下添加如下內容:
message UpsampleParameter{optional int32 scale = 1 [default = 1];}message MishParameter {enum Engine {DEFAULT = 0;CAFFE = 1;CUDNN = 2;}optional Engine engine = 2 [default = DEFAULT]; }
然后我們重新編譯一下caffe,在caffe/build目錄下
最后執行轉換命令
python3 darknet2caffe.py打印信息如下
I1030 22:34:06.650609 7437 net.cpp:202] layer1-conv does not need backward computation. I1030 22:34:06.650612 7437 net.cpp:202] input does not need backward computation. I1030 22:34:06.650614 7437 net.cpp:244] This network produces output layer139-conv I1030 22:34:06.650619 7437 net.cpp:244] This network produces output layer150-conv I1030 22:34:06.650621 7437 net.cpp:244] This network produces output layer161-conv I1030 22:34:06.650758 7437 net.cpp:257] Network initialization done. unknow layer type yolo unknow layer type yolo save prototxt to ./yolov4.protofile save caffemodel to ./yolov4.caffemode
總結
以上是生活随笔為你收集整理的darknet yolov3 yolov4转caffe 教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DM8168的McSPI/McASP/M
- 下一篇: 转 alsa录音放音执行流程详解