在了解了caffe模型的结构和ONNX的结构后,我用python写了一个caffe转onnx的小工具,现只测试了resnet50、alexnet、yolov3的caffe模型和onnx模型推理结果,存在误差,但是在可接受范围内。本工具在转换模型的时候是不需要配置caffe的,只需要安装好protobuf即可。在进行推理测试的时候才需要配置好pycaffe。
新版简介
前面写过的那版caffe2onnx的工具,由于对参数数据有很多多余的操作,会导致如vgg16这种参数量较大的模型难以转换,因此在读取参数的同时就将其转为tensor和tensor value info,并且在每个算子节点构建的时候直接转为onnx中NodeProto的类型。
caffe-onnx代码
结构
src: 主要代码,包括OPs、caffe2onnx.py、c2oObject.py、load_save_model.py、op_layer_info.py。
caffemodel: 存放caffe模型,其中有为了测试用准备的caffe模型。
onnxmodel: 默认存放onnx模型的路径。
proto: 存放proto文件,caffe_pb2.py为官方caffe.proto编译产生的,caffe_upsample_pb2.py为我为了读取yo