我正在尝试通过 onnx 将 pytorch“tiramisu”UNet(来自:https ://github.com/bfortuner/pytorch_tiramisu )转换为 coreml,我在 onnx-coreml 中遇到了这个错误_operators.py
:
TypeError: Error while converting op of type: Concat. Error message: Unsupported axis 1 in input of shape
关于我如何解决这个问题的任何想法?图层文件在这里,供参考:https ://github.com/bfortuner/pytorch_tiramisu/blob/master/models/layers.py
更新 1:因此,进一步深入研究,我注意到我的一些 graph.shape_dicts 包含没有值/形状的键:例如,'422': (1, 324, 2, 4), '423': (1, 324, 2, 4), '424': (1, 12, 2, 4), '425': (1, 48, 2, 4), '426': (), '427': (), '428': (), '429': (), '430': () [...]
我真的不确定这是怎么发生的,或者它是否是我的原始模型、onnx 或 onnx-coreml 问题。if node.inputs[0] in graph.shape_dict:
但考虑到这一点,我if len(graph.shape_dict[node.inputs[0]]) != 0:
在_operators.py
. 这允许转换完成,但在我尝试模型是否实际转换正确之前我不会知道......
更新 2:好的,所以生成的 mlmodel 在 Xcode 中验证失败,validator error: Layer '427' of type 320 has 1 inputs but expects at least 2.
我猜这是(简单地)忽略我在上面的“更新 1”中找到的空 shape_dict 值的结果。但显然模型是不正确的。错误可能源于onnx吗?