【问题标题】:xrunc coreml model error for YOLACT onnx with no priors layer and softmax layer没有先验层和 softmax 层的 YOLACT onnx 的 xrunc coreml 模型错误
【发布时间】:2020-09-30 17:20:02
【问题描述】:

我已将 YOLACT pytorch 模型转换为没有 softmax 和先验层的 onnx。 然后我尝试将 onnx 转换为 coreml。终端显示它没有错误地完成。 它还显示模型编译完成,并且没有错误如下。

210/211: Converting Node Type Concat 211/211: Converting Node Type Concat Translation to CoreML spec completed. Now compiling the CoreML model. Model Compilation done.

但是当我在macos上编译coreml模型时,错误显示:

xcrun coremlc compile yolact_test_nosoftmax_simplify.mlmodel

coremlc: Error: compiler error: Espresso exception: Invalid blob shape generic_elementwise_kernel: cannot broadcast [18, 18, 128, 1, 399] and [35, 35, 128, 1, 399]

我现在不知道如何调试。任何建议将不胜感激。

【问题讨论】:

    标签: coreml conv-neural-network onnx onnx-coreml


    【解决方案1】:

    您的模型中有一个操作尝试将操作应用于大小为 (18, 18, 128, 1, 399) 的张量和大小为 (35, 35, 128, 1, 399) 的张量。这两个张量形状不兼容,因此出现错误消息。

    要解决此问题,您需要找出模型中发生这种情况的位置,然后解决问题。可能是 PyTorch -> ONNX 转换出现问题,或者 ONNX -> Core ML 转换出现问题。

    【讨论】:

    • ONNX 模型没问题,因为我可以运行模型来获得正确的分割掩码。此外,从ONNX模型转换的mnn模型也没有问题,也可以得到正确的预测。
    • 那么肯定是ONNX -> Core ML转换出错了。
    • 应该是。感谢您的回复。
    • 新的 PyTorch-Converter 应该支持这一点。你能试试 PyTorch 转换器(coremltools.readme.io/docs/pytorch-conversion)吗?由于改进了类型推断和优化支持,PyTorch 转换器得到了很好的优化并且比 ONNX-CoreML 转换器更健壮。
    猜你喜欢
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 2018-12-04
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多