pytorch下的YOLOv3转换到caffe
1. 代码资源
2.pytorch训练自己的模型
- 详细的代码解析和训练过程可以看大神的B站视频,很详细了
3.pth到caffemodel
- 下载代码后需要安装,也可以在代码内运行
- 加载YOLO模型 和权重,直接生成prototxt 和 caffemodel
import torch
from torchvision.models import resnet
from pytorch2caffe import pytorch2caffe
import sys
sys.path.append('../yolo3-pytorch')
from yolo import YOLO
yolo = YOLO()
name='yolov3'
yolov3=yolo.net
dummy_input=torch.ones([1,3,416,416])
pytorch2caffe.trans_net(yolov3, dummy_input, name)
pytorch2caffe.save_prototxt('{}.prototxt'.format(name))
pytorch2caffe.save_caffemodel('{}.caffemodel'.format(name))
4. 遇到的坑
- 在训练之前要把上采样的模型改成
bilinear
,不然转换会报错
- 得到的prototxt与原始的yolov3进行对比,上个上采样的位置需要把类型改成
Upsample
weight_filler {
type: "xavier"
}
eps: 1e-05
5 测试
https://github.com/ChenYingpeng/caffe-yolov3
测试一下