我们正在尝试将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节点。
目前没有回答
相关问题 更多 >
编程相关推荐