使用 MLMultiArray 作为 CoreML 模型的输出

Posted

技术标签:

【中文标题】使用 MLMultiArray 作为 CoreML 模型的输出【英文标题】:Using an MLMultiArray as an Output of a CoreML model 【发布时间】:2020-06-26 06:30:37 【问题描述】:

我使用 PyTorch 训练了一个 YOLOv3-SPP 模型。然后我将模型保存为 onnx 格式,然后使用 onnx-coreml 将我的 onnx 模型转换为 CoreML。我似乎无法弄清楚如何使用我的模型,因为输出是 MLMultiArrays。

这是我的输出的样子:

我是机器学习的新手,在尝试使用此模型时不知道从哪里开始。我不知道每个 MultiArray 包含哪些信息,也不知道如何访问它。鉴于我的模型是在 3 个类上训练的对象检测器,谁能告诉我每个 MultiArray 包含哪些信息以及如何访问它?一些带有解释的示例代码会有很长的路要走。如果有人知道我可以简单地将这个模型放入其中进行测试的任何 Github 项目,那也可以。

【问题讨论】:

【参考方案1】:

您需要将模型的输出解码为边界框等,就像 PyTorch 模型一样。并非 PyTorch 代码所做的一切都是 Core ML 模型的一部分。

在 *** 上解释这个问题太多了,但我已经在我的博客上写了很多关于这个的文章:https://machinethink.net/blog/

特别是,

https://machinethink.net/blog/object-detection/ https://machinethink.net/blog/yolo-coreml-versus-mps-graph/ https://machinethink.net/blog/object-detection-with-yolo/

YOLOv3-SPP 在细节上有所不同,但这应该可以帮助您入门。

【讨论】:

以上是关于使用 MLMultiArray 作为 CoreML 模型的输出的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CoreML 中访问 MLMultiArray 中的元素

如何初始化多维 MLMultiArray

向 MLMultiArray 添加元素

来自 UIImage 的 MLMultiArray 用于 sklearn

在 IOS 中切片和重塑 MLMultiArray

用于 AudioKit DSP 的 CoreML