3

I wanted to convert my face detection model written in caffe (https://github.com/adelekuzmiakova/onnx-converter/blob/master/res10_300x300_ssd_iter_140000.caffemodel) to ONNX format. I was following this tutorial: https://github.com/onnx/onnx-docker/blob/master/onnx-ecosystem/converter_scripts/caffe_coreml_onnx.ipynb and also here is my code:

import coremltools
import onnxmltools

# Update your input name and path for your caffe model
proto_file = 'no_norm_param.deploy.prototext' 
input_caffe_path = 'res10_300x300_ssd_iter_140000.caffemodel'

# Update the output name and path for intermediate coreml model, or leave as is
output_coreml_model = 'model.mlmodel'

# Change this path to the output name and path for the onnx model
output_onnx_model = 'model.onnx'



# Convert Caffe model to CoreML 
coreml_model = coremltools.converters.caffe.convert((input_caffe_path, proto_file))

# Save CoreML model
coreml_model.save(output_coreml_model)

# Load a Core ML model
coreml_model = coremltools.utils.load_spec(output_coreml_model)

# Convert the Core ML model into ONNX
onnx_model = onnxmltools.convert_coreml(coreml_model)

# Save as protobuf
onnxmltools.utils.save_model(onnx_model, output_onnx_model)

However, when I run this code, I get the following error message:

[libprotobuf ERROR /Users/zach/builds/peTAVmNC/3/nn-inference/coremltools-build/deps/protobuf/src/google/protobuf/text_format.cc:287] Error parsing text-format caffe.NetParameter: 1010:17: Message type "caffe.LayerParameter" has no field named "permute_param".
Traceback (most recent call last):
  File "convert-caffe-onnx.py", line 19, in <module>
    coreml_model = coremltools.converters.caffe.convert((input_caffe_path, proto_file))
  File "/Users/adele/Desktop/vay-sports/onnx-converter/.env/lib/python3.7/site-packages/coremltools/converters/caffe/_caffe_converter.py", line 192, in convert
    predicted_feature_name)
  File "/Users/adele/Desktop/vay-sports/onnx-converter/.env/lib/python3.7/site-packages/coremltools/converters/caffe/_caffe_converter.py", line 260, in _export
    predicted_feature_name)
RuntimeError: Unable to load caffe network Prototxt file: no_norm_param.deploy.prototext

To me it's a bit strange because when I look at my prototext file (https://github.com/adelekuzmiakova/onnx-converter/blob/master/no_norm_param.deploy.prototext), there is no permute_param. My prototext file, caffe model, and code can be found here: https://github.com/adelekuzmiakova/onnx-converter

Did anyone else run into this problem? Do you know what might be going on? Or does it have to do somethinng with SSD? Many thanks!

puchal
  • 1,883
  • 13
  • 25
  • 1
    Are you able to convert your model into ONNX format. If yes, please let me know how you did. – Sanjay Nov 16 '21 at 17:36

0 Answers0