Darknet yolov3转caffe
builtins.KeyError: Layer1-conv
最近使用Darknet yolov3模型,因为部署在云天励飞上,需要把模型转换成caffe格式。因此在参考了大牛的转换代码,地址:https://github.com/ChenYingpeng/darknet2caffe。由于大牛的代码是python2编写,本人环境是python3环境,由于不想更换本地环境,所以修改了大牛部分代码。 直接运行代码会报错,报python语法错误。把代码修改后,报错builtins.KeyError: Layer1-conv  好像是说没有关键字Layer1-conv,只好debug看源码哪里有问题。 在这里发现了问题,params是一个空的字典。 params变量是net.params,是protofile文件内容,原来我们生成的protofile文件是空文件,所以回报错。  看了我们生成protofile代码,是有问题的,大牛是使用python2 print()中写入的语法,python3不兼容此语法。
这是作者python2写的
print >> fp, 'name: \"%s\"' % props['name']

我们需要改写成python3 语法
print('name: \"%s\"' % props['name'], file=fp)
最后转换成功 
|