当我将 pytorch 编写的 vgg 模型转换为 caffe2 时,我遇到了这个问题


model = VGGish()  # vgg model class
model.train(False)
x = torch.randn(10, 1, 64, 96, requires_grad=True)
# Export the model
torch_out = torch.onnx._export(model,             # model being run`enter code here`
x,                       # model input (or a tuple for multiple inputs)
"super_resolution.onnx", # where to save the model (can be a file or file-like object)
export_params=True)      # store the trained parameter weights inside the model file
model = onnx.load("modelsVGGish_conv.onnx")
onnx.checker.check_model(model)
onnx.helper.printable_graph(model.graph)
rep = backend.prepare(model, device="CPU") # or "CPU"

当程序运行到此代码时

rep = backend.prepare(model, device="CPU") # or "CPU"

错误发生:

Traceback (most recent call last):
File "C:/Users/xxx/Desktop/python/新建文件夹/onnx_to_caffe2.py", line 159, in <module>
rep = backend.prepare(model, device="CPU") # or "CPU"
File "D:environmentAnacondalibsite-packagescaffe2pythononnxbackend.py", line 713, in prepare
init_net, predict_net = cls._onnx_model_to_caffe2_net(model, device, opset_version, False)
File "D:environmentAnacondalibsite-packagescaffe2pythononnxbackend.py", line 876, in _onnx_model_to_caffe2_net
onnx_model = onnx.utils.polish_model(onnx_model)
File "D:environmentAnacondalibsite-packagesonnxutils.py", line 21, in polish_model
model = onnx.optimizer.optimize(model)
File "D:environmentAnacondalibsite-packagesonnxoptimizer.py", line 55, in optimize
optimized_model_str = C.optimize(model_str, passes)
IndexError: invalid unordered_map<K, T> key

这简直让我发疯!

有人可以帮助我吗?

不幸的是,如果没有实际模型,很难对其进行调试。但是,ONNX 模型库中有 4 个已经转换的 ONNX VGG 模型。

请随意使用现成的 ONNX 解决方案,或将您的疑虑作为问题发布在 github 上以进行进一步调试。

相关内容

最新更新