问题标签 [mlmodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
164 浏览

tensorflow - CoreMLTools 转换为 MLModel:reName_Feature 不起作用

问题:CoreMLTools reName_feature 不更新模型中的特征名称,仅在模型的“规范”中!

我为图像分类问题创建了一个顺序 Tensorflow 模型。最初,在转换时(根据 Apple 文档):

生成了一个 MLModel,它有一个名为“conv2d_3_input”的输入,是一个 MultiArray (Float33.1x299x299x1) 和一个名为“Identity”的输出,它也是 Float32 的 MultiArray

幸运的是,位于https://coremltools.readme.io/docs/introductory-quickstart#download-the-model的快速入门文档 阐明了输入类型的修复需要向 ImageType 添加形状 arg:

所以现在生成的 MLModel 有一个 Image (Grayscale 299 x 299) 的输入类型(太棒了!),但它仍然被称为“conv2d_3_input”

对于样式点,我想将输入特征重命名为“图像”。转换函数(上图)的名称参数无效。接下来我尝试直接更改模型的规格:

这会正确更改规范中的输入名称:

但是,这显然不会将更改推入模型!这是 mlmodel 的清单:

如何将功能名称的更改推送到实际的 mlmodel 中?

0 投票
2 回答
41 浏览

ios - 如何估计 CoreML 模型的最大运行时占用空间(以兆字节为单位)

假设我有一个在TensorFlow/ Keras/ Caffeetc中制作的网络模型。我可以使用CoreML ConvertersAPI​​从中获取CoreML模型文件(.mlmodel)。

现在,因为我有一个.mlmodel文件,并且知道input shape并且output shape,如何估计最大 RAM 占用空间?我知道一个模型可以有很多层,它们的大小可以比输入/输出形状大得多。

所以问题是:

  1. mlmodel在不编译和运行应用程序的情况下,是否可以通过某些公式/API 知道最大内存占用?
  2. 最大占用空间更接近最大中间层的内存大小,还是更接近所有层大小的总和?

任何建议表示赞赏。由于我是 CoreML 的新手,您可以提供任何反馈,如果需要,我会尝试改进问题。

0 投票
0 回答
47 浏览

swift - MlModel 预测返回 nil

我将 ONNX 模型转换为 mlmodel,但无法使用预测功能。这是我的模型的输入和输出:[在此处输入图像描述][1] [1]:https://i.stack.imgur.com/6mY4H.png

我正在初始化模型和输入,如下所示:

我用这样的运动数据填充向量:

我尝试执行预测:

我收到此错误消息:

有人可以帮忙吗?

0 投票
1 回答
29 浏览

python - 将 .caffemodel 转换为 .mlmodel 失败

在尝试将 caffemodel 转换为 mlmodel 时,我无法运行我的 converter-script.py,这是我的 converter-script.py 文件:

我使用带有 python 2.7 的 virtualenv 运行它,我收到以下错误消息:

文件“convert-script.py”,第 1 行,导入 coremltools 文件“/Users/aji/Documents/Environments/python27/lib/python2.7/site-packages/coremltools/init .py ”,第 28 行,_root_logger_handlers_backup = _root_logger.handlers.copy() AttributeError: 'list' 对象没有属性 'copy'

任何人都可以给我解决方案吗?

0 投票
1 回答
174 浏览

ios - 图像识别的 CoreML 模型预测仅适用于 iPhone 11 和 12 模型

我在 Create ML 应用程序中创建了一个图像识别 .mlmodel 文件。我现在在 iOS 应用程序中使用它。

它在 iPhone 11 和 iPhone 12(以及相应的机型)上运行良好,但在 iPhone 8、iPhone 8 Plus 和 iPhone X 上运行良好。可能还有其他机型无法运行,但到目前为止我可以确认这些机型。

我正在使用的代码是:

在这不起作用的模型上,控制台中打印的错误是:

Error Domain=com.apple.CoreML Code=1 "Predicted feature named 'classLabel' was not output by pipeline" UserInfo={NSLocalizedDescription=Predicted feature named 'classLabel' was not output by pipeline}

由于缺乏有关 CoreML 的文档,我无法找到有关此错误的可靠跟踪。SO上有一些随机帖子,Turicreate Github(Core ML 运行的底层 Python 库)上也有 Git 问题,但似乎没有任何东西可以直接回答这个问题。

任何帮助将不胜感激。谢谢!


根据这篇 Apple Developer 论坛帖子,配备 A7 处理器的设备与之前的设备之间可能存在一些差异。它有可能默默地失败吗?

https://developer.apple.com/forums/thread/93105


在 ML 模型的输出类中,有几行代码如下:

这是在模拟器上构建时发生的自动生成的文件中,因此即使在文本编辑器中编辑文件也会在每次构建时被覆盖。我认为,如果可能的话,输出模型的输出可能会有所帮助,以查看它实际返回的内容。


我已将其追踪到功能:

在 MLModel.h 的 MLModel 类声明中。这是引发错误的地方;到目前为止,我已经记录了输入数据,这是引发错误的函数,因此它来自框架本身。

0 投票
0 回答
95 浏览

ios - 使用 coremltools 3 将 TF 2.* keras 模型转换为 iOS 12 的 mlmodel

我有一个keras模型 ( TF 2.*),我想将其转换为mlmodeliOS 版本 12。

根据coremltools 4 发行说明:“要将 Core ML 模型部署到 iOS12、macOS 10.13、watchOS 5、tvOS 12 或更早版本的目标,请使用 coremltools 3 和 tfcoreml 1。”

tfcoreml仅适用于TF 1.*,所以我知道我需要使用coremltools version 3.*.

我正在尝试coremltools version 3.2,我想使用这个功能[coremltools.converters.keras.convert][2]

我从一个简单的尝试开始,使用带有coremltools==3.2, tensorflow==2.4.1,的新鲜 venv keras==2.4.3

但我收到以下错误:

我试图改变功能部分,从:

并收到错误: TypeError: 'InputLayer' object is not iterable

第二次尝试是使用第一个 TF 2.* 版本:tensorflow==2.0.0keras==2.3.0.

我执行相同但收到:

我该如何解决?

谢谢

0 投票
0 回答
59 浏览

ios - Swift 中的 CGImage 到 CVPixelBuffer

我有一个像这样创建的图像:

现在我想将其转换为CVPixelBuffer.

我检查了多种解决方案。似乎它们已经过时了。

例如:

不编译,因为:

我也尝试使用这个功能:https ://github.com/hollance/CoreMLHelpers/blob/master/CoreMLHelpers/CGImage%2BCVPixelBuffer.swift

但我收到:

我该如何解决?

谢谢

0 投票
1 回答
34 浏览

xamarin.ios - Xamarin IOS CoreML 模型更改多路器 (posenet)

在此处输入图像描述我正在使用 Xamarin IOS,我需要按照此处的说明更改此CoreML MLModel 的“乘数”值

“建议在移动设备上使用乘数为 0.50 的模型。” https://github.com/tensorflow/tfjs-models/tree/master/posenet

我目前使用的模型有一个0.75 倍数(太慢),我一直在尝试转换和修改模型上的这个属性但是,Xamarin IOS 中不存在该属性,模型只是有一个 GetPrediction 方法就是这样!

对于 Javascript,您似乎可以根据需要设置属性,如下所示,但我需要的只是 Posenet 作为倍数为 0.5 的 .MLModel 文件。

//下面的代码不能使用 Xamarin IOS,模型唯一的属性是 bool 'RunOnGPUAndCpu'和方法'GetPrediction'

我试图转换一个 Tensorflow 模型,但没有成功!

0 投票
1 回答
226 浏览

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

我有一个嵌套的 for 循环(从这里开始

heatmaps是形状为 (14, 50, 60) 的 MLMultiArray。此代码迭代 14 个形状 (50,60) 的子数组,并找到每个值的最大值。

这是代码:

等效的python代码:

Swift 函数在 iPhone 12 mini 上大约需要 36 毫秒,在 iPhone 11 Pro Max 上大约需要 58 毫秒。我想优化它并减少它的运行时间。

我该怎么做?

如果我用 Objective-C 编写代码会有帮助吗?怎么做到呢?

谢谢

0 投票
0 回答
23 浏览

machine-learning - 保存机器学习模型以用于新数据

当我想通过这段代码保存我的模型时:

"" # 将模型保存到磁盘 filename = 'finalized_model.sav' pickle.dump(model, open(filename, 'wb')) ""

我收到此错误:

"""TypeError: cannot pickle '_thread.RLock' object"""

这意味着我使用 pickle 来腌制对象,但我再次收到错误。谁能告诉我这是什么原因?