在 IOS 中切片和重塑 MLMultiArray

Posted

技术标签:

【中文标题】在 IOS 中切片和重塑 MLMultiArray【英文标题】:slice and reshape MLMultiArray in IOS 【发布时间】:2018-10-05 06:04:58 【问题描述】:

我有一个 coreML 模型(从 Keras 转换而来),它产生的输出为大小为 (1,40,30,90) 的 MLMultiArray(例如 name : finalOutput)。该数组是通过对维度为 (1,10800,10) 的内部张量进行整形得到的

我无法将 finalOutput multiArray 分成三个维度 (1,40,30,0:45) , ( 1,40,30, 45:54) 和 (1,40,30,54:90)。

然后这些将被重新塑造成三个维度的子数组 (1,10800,5) , (1,10800) 和 (1,10800,4)。

我是 ios 世界中快速编程的新手。我可以在 python 中轻松做到这一点而不会出现问题。

如何在 Swift for iOS 中使用 SLICE 多数组和 RESHAPE 多数组?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

在 MLMultiArray 上没有简单的切片和整形方法。也许我们会在 iOS 12 中做这样的事情,但目前你必须使用指针算法来做这种事情。

【讨论】:

是的..我求助于coreml管道并使用它的功能对模型中的张量/数组数据类型执行操作以找到最终答案。【参考方案2】:

看看这个example,它使用指针来重塑

【讨论】:

以上是关于在 IOS 中切片和重塑 MLMultiArray的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pandas 中正确旋转或重塑时间序列数据框?

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

从 MLModel 处理 MLMultiArray

在 Swift 中优化 MLMultiArray 上的“嵌套循环”

如何在 MLMultiarray 元素上应用 Sigmoid?

将 UIImage 转换为 Keras 模型的 MLMultiArray