无法将caffe2模型转换为onnx或tensorflow表单

2024-06-25 06:52:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在尝试将caffe模型转换为onnx格式。最初我们使用CaffetoCaffe2转换工具将caffe模型转换为caffe2。为此,我们在python2.7中安装了caffe和caffe2(conda)。在成功地从caffe转换到caffe2之后,我们得到了三个文件viz。预测_净利润,预测_网.pbtxt和inet_净利润. 然后,我们尝试使用Caffe2toONNX将这些文件转换为'onnx'格式转换器。我们尝试在此页面中使用shell命令和python脚本将模型转换为onnx格式。但是,我们得到了以下信息错误:-在

运行时错误:[强制失败于净抄送:69] . op Concat:net Context编码器的输入掩码源未知,运算符input:“data”input:“mask”output:“data_all”输出:“_data_all_dims”类型:“Concat”arg{name:“order”s:“NCHW”}

这个模型似乎无法正确识别它的两个输入。如何我们能正确地处理(或指定)两个输入(或多个)并将caffe2模型正确地转换为onnx格式吗?在

这是转换脚本:-在

import onnx
import caffe2.python.onnx.frontend
from caffe2.proto import caffe2_pb2

# We need to provide type and shape of the model inputs, 
# see above Note section for explanation
data_type = onnx.TensorProto.FLOAT
data_shape1 = (1, 3, 512, 512)
data_shape2 = (1, 1, 512, 512)
value_info = {
    'data': (data_type, data_shape1),
    'mask': (data_type, data_shape2),
}

predict_net = caffe2_pb2.NetDef()
with open('predict_net.pb', 'rb') as f:
    predict_net.ParseFromString(f.read())

init_net = caffe2_pb2.NetDef()
with open('init_net.pb', 'rb') as f:
    init_net.ParseFromString(f.read())

onnx_model = caffe2.python.onnx.frontend.caffe2_net_to_onnx_model(
    predict_net,
    init_net,
    value_info,
)

#onnx.checker.check_model(onnx_model)
onnx.save(onnx_model, 'model.onnx')

以下是链接caffe2 pbtxt文件:predict_net.pbtxt

更新:我们也尝试了caffe_to_tf工具;但遇到了另一个错误:-在

遇到错误:不支持多个top节点。


Tags: 文件模型importdatanetmodelinit格式