yolov2到caffe的移植主要分两个步骤:
一、cfg,weights转换为prototxt,caffemodel
1.下载源码:
git clone https://github.com/marvis/pytorch-caffe-darknet-convert.git

2.安装pytorch,使用conda指令:(需要有torch模块)
conda install pytorch torchvision cuda80 -c soumith [这里cuda换成自己对应的版本]

3.cd pytorch-caffe-darknet-conver目录
输入命令:python darknet2caffe cfg/*.cfg cfg/*.weights cfg/*.prototxt cfg/*.caffemodel
注意:这里如果cfg文件中存在route层,则需要修改其对应部分。(这里只针对route层存在2个参数的情况)
[
        elif block['type'] == 'route':
            #pdb.set_trace()
            prev_layer_id1 = layer_id + int(block['layers'][:2])
            prev_layer_id2 = layer_id + int(block['layers'][-2:])
            bottom1 = topnames[prev_layer_id1]
            bottom2 = topnames[prev_layer_id2]
            route_layer = OrderedDict()
            route_layer['bottom'] = [bottom1, bottom2]
            if block.has_key('name'):
                route_layer['top'] = block['name']
                route_layer['name'] = block['name']
            else:
                route_layer['top'] = 'layer%d-route' % layer_id
                route_layer['name'] = 'layer%d-route' % layer_id
            route_layer['type'] = 'Concat'
            layers.append(route_layer)
            bottom = route_layer['top']
            topnames[layer_id] = bottom
            layer_id = layer_id + 1
]

如此便得到相应的prototxt文件和caffemodel文件

二、caffe实现darknet的训练
1.下载caffe-yolov2源码:
git clone https://github.com/gklz1982/caffe-yolov2.git

2.对caffe-yolov2进行编译,编译方式同编译caffe一致

3.将自己的VOC格式数据拷贝至./data/yolo/VOCdevkit下
(1) python get_list.py -- 获得相应的trainval.txt和test_2007.txt
(2) sh convert.sh -- 生成需要训练的lmdb格式数据(需要修改convert.sh的内部参数)
(3) 修改label_map.txt文件

4.修改prototxt等相关文件,开始训练
(1) cd ./examples/yolo
(2) mkdir dense-yolo_v1
(3) 将根据cfg和weights生成的prototxt以及caffemodel文件拷贝至dense-yolo_v1文件夹下
(4) 对照../darknet_v3/gnet_region_train_darknet_v3.prototxt修改自己的prototxt,一个是修改data层,另外一个是region层。
(5) 同理对solver文件等。
(6) 将../darknet_v3/train_darknet_v3.sh拷贝至dense-yolo_v1文件夹下,修改相关参数
(7) sh train_darknet.sh
(8) 开始训练

具体结果还在等待。。。

darknet(yolov2)移植到caffe框架的更多相关文章

  1. 转 Yolov3转化Caffe框架详解

    转自https://blog.csdn.net/watermelon1123/article/details/82083522 前些日子因工程需求,需要将yolov3从基于darknet转化为基于Ca ...

  2. Darknet windows移植(YOLO v2)

    Darknet windows移植 代码地址: https://github.com/makefile/darknet 编译要求: VS2013 update5 及其之后的版本(低版本对C++标准支持 ...

  3. Caffe框架GPU与MLU计算结果不一致请问如何调试?

    Caffe框架GPU与MLU计算结果不一致请问如何调试? 某一检测模型移植到Cambricon Caffe上时,发现无法检测出结果,于是将GPU和MLU的运行结果输出并保存后进行对比,发现二者计算结果 ...

  4. Caffe框架下的图像回归测试

    Caffe框架下的图像回归测试 参考资料: 1. http://stackoverflow.com/questions/33766689/caffe-hdf5-pre-processing 2. ht ...

  5. 人工智能深度学习Caffe框架介绍,优秀的深度学习架构

    人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...

  6. Caffe框架,图像数据转换成LMDB数据格式

    小码农最近在研究深度学习,对所学知识做点记录,以供以后翻阅.在Caffe框架中,数据的格式都是LMDB的,如何将图像数据转换成这个格式呢? 首先,将图像数据和标签生成txt文档,执行一下代码: fin ...

  7. Caffe框架,了解三个文件

    不知道从什么时候开始,Deep Learning成为了各个领域研究的热点,也不知道从什么时候开始,2015CVPR的文章出现了很多Deep Learning的文章,更不知道从什么时候开始,三维重建各个 ...

  8. Caffe使用step by step:caffe框架下的基本操作和分析

    caffe虽然已经安装了快一个月了,但是caffe使用进展比较缓慢,果然如刘老师说的那样,搭建起来caffe框架环境比较简单,但是完整的从数据准备->模型训练->调参数->合理结果需 ...

  9. 安装caffe框架所需文件

    安装caffe框架所需文件: 1.微软提供的快速卷积神经网络框架caffe-master安装包或者windows提供的caffe-windows安装包. 链接:http://pan.baidu.com ...

随机推荐

  1. loadrunner参数使用总结

    使用loadrunner进行性能测试,在准备脚本阶段参数是不可避免要使用到的,现把参数的各种设置取值方式总结一下,方便日后查阅: update value on Sequential顺序取值下的取值结 ...

  2. 一个可变布局列表,有9种布局item大小,每个item可拖拽切换位置

    代码地址如下:http://www.demodashi.com/demo/11271.html 一.准备工作 准备一台安卓设备手机,4.4以上版本 本例子实现,一个可变布局列表,有9种布局item大小 ...

  3. zrrx笔试题(一)——文件复制&日期天数差

    1. 利用输入输出流来复制文件 步骤:1.构造文件字节输入输出流  2.创建一个字节数组,用来指定每次复制的字节大小   3.输入流从源文件读取字节,输出流将字节写入文件 import java.io ...

  4. 对oracle数字类型的研究

    Oracle的数字类型主要有number,binary_float,binary_double三类,其他的像int,number(p,s)等等大多数都是由这些引申出来的.这部分的理解主要来自oracl ...

  5. 区别原生chrome 和以chrome为内核的360浏览器

    function isChrome360() { if( navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ) { var des ...

  6. STL 容器(vector 和 list )

    1.这个容器的知识点比较杂 迭代器的理解: 1.erase()函数的返回值,它的迭代器在循环遍历中的奇特之处: #define _CRT_SECURE_NO_WARNINGS #include < ...

  7. 取SQL分组中某几行数据

    常用的方法有:子查询.ROW_NUMBER.APPLY,总体感觉还是ROW_NUMBER比较直观 if OBJECT_ID('testGroup') is not null drop table te ...

  8. JavaScript正则表达式基础知识汇总

    一.创建正则对象: 1.构造函数RegExp创建正则对象 var pattern = new RegExp('s$'); //pattern匹配以s结尾的字符串 2.使用正则直接量 var patte ...

  9. TypeScript 入门指南

    你是否听过 TypeScript? TypeScript 是微软开发的 JavaScript 的超集,TypeScript兼容JavaScript,可以载入JavaScript代码然后运行.TypeS ...

  10. vivado sdk生成elf文件出错:make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3)

    vivado sdk生成elf文件出错:make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3) Might be a ...