问题标签 [coremltools]
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.
ios - 使用 iOS 11 mlmodel 进行图像分类 - 使用 coremltools 和经过训练的 .caffemodel 转换问题
似乎我在使用coremltool
和训练有素的 .caffemodel 时遇到了一些转换问题。我能够训练和测试caffe
狗模型(120 个类别,20k 张图像),并且它通过了我的直接caffe
分类测试。不幸的是,在转换为mlmodel
它之后,我并没有对相同的输入做出有效的预测。
培训模式
该模型已经使用 Caffe、GoogleNet、包含 120 个类别的 20k 图像集和大约 500k 次迭代进行了训练。我已经准备好图像数据库和所有其他的,并将所有文件放在一起
分类与caffe
此分类示例由caffe
. 当我尝试对受过训练的人运行分类请求时caffemodel
- 它的效果很好,概率很高(80-99%),结果正确:
分类与Apple
iOS 11
CoreML
不幸的是,当我尝试将这个DTDogs.caffemodel
&打包deploy.txt
到 Apple iOS 11 可使用的 .mlmodel 中时,CoreML
我得到了不同的预测结果。实际上,加载和使用模型没有错误,但我无法获得有效的分类,所有的预测都是 0-15% 的置信度并且有错误的标签。为了正确测试它,我使用了与用于直接分类的完全相同的图像caffe
:
我还从这里用我的 iOS 应用程序尝试了预训练和预打包的模型——它们工作得很好,所以这似乎是打包过程的问题。
我错过了什么?
以下是分类示例caffe
:没有问题,正确答案 ( python
):
这是DTDogs.mlmodel
使用coremltools
. 我看到生成的.mlmodel
文件比原始文件小两倍,但它可能是( ).caffemodel
的某种存档或压缩优化:coremltools
python
DTDogs.mlmodel
这是在应用程序中使用的示例。我正在使用常规图像选择器来选择用于.caffe
分类测试 ( swift
) 的相同图像:
caffe - 使用 coremltools 将 caffe 模型转换为 CoreML 会导致预测不一致
我已经使用 Caffe 和 NVIDIA 的 DIGITS 训练了一个模型。在 DIGITS 上对以下图像进行测试,结果如下:
当我从 DIGITS 下载模型时,我得到snapshot_iter_24240.caffemodel
了deploy.prototxt
,mean.binaryproto
和labels.txt
. (而且solver.prototxt
我train_val.prototxt
认为不相关)
我coremltools
用来将 caffemodel 转换为 mlmodel,运行以下命令:import coremltools
代码输出以下内容:
大约 45 秒后food.mlmodel
生成。我使用 Xcode 9.0 beta 3 (9M174d) 将它导入到 iOS 项目中,并在单个视图 iOS 项目中运行以下代码。// // ViewController.swift // SeeFood // // 由 Reza Shirazian 于 2017 年 7 月 23 日创建。// 版权所有 © 2017 Reza Shirazian。版权所有。//
输出以下内容:
这完全不符合模型在 DIGITS 上的表现。我不确定我做错了什么,或者我是否错过了一步。我尝试在没有的情况下创建模型,mean.binaryproto
但这没有任何区别。
如果这里有帮助的话deploy.prototxt
python - scikit-learn:将多输出决策树转换为 CoreML 模型
我有一个训练有素的 scikit-learn 模型,它使用多输出决策树(作为 a RandomForestRegressor
)。没有明确对随机森林回归模型进行自定义配置以启用多输出行为,因为内置了多输出行为。基本上,只要将多输出训练数据拟合到模型中,模型就会在幕后切换到多输出模式。
此外,它RandomForestRegressor
是 CoreML 转换脚本提供的受支持的转换器。但是,在转换过程中,我收到了带有堆栈跟踪的此错误:
ValueError:预计 scikit-learn 树中只有 1 个输出。
简单的转换代码如下:
我可以做些什么来启用 CoreML 转换脚本来处理多输出决策树?我可以对现有脚本进行更改,而无需完全重新发明轮子吗?
caffe - 无法将 Caffe 模型转换为 Core ML 模型
当我尝试使用 coremltools 将模型从 Caffe 转换为 Core ML 模型时,我得到以下信息:
这是我正在使用的代码:
任何想法是什么问题?非常感谢!
python - 使用 CoreML 模型对图像进行分类时出错
我正在尝试使用 CoreML 工具将 Keras 模型转换为 coreml,但我在预测时出错。首先我转换了模型:
转换运行良好。然后我加载了模型:
和图像:
但是当我试图预测时:
我收到一个错误:
我尝试按照 WWDC 中“Core ML in depth”会议的步骤进行操作……有人知道出了什么问题吗?
tensorflow - Keras + Tensorflow 模型转换为 coreml 退出 NameError: global name ... is not defined
我已经改编了 keras 网站上的 VAE 示例来训练我的数据,并且一切运行良好。但我无法转换为 coreml。错误是:
由于在 python 源代码中明确定义了 batch_size,我猜它与转换工具如何捕获变量名有关。有谁知道我可以如何修复它(或者它是否确实可以修复)?
非常感谢,
J。
tensorflow - CoreMLTools Keras 简单顺序线性回归模型导出错误(“模块”对象没有属性“mobilenet”)
我使用 Keras 2.0.4(TensorFlow 1.1.0 后端)创建了一个非常简单的序列线性回归模型,并且我的 coremltools(0.6.3)导出失败并显示以下错误消息:
-------------------------------------------------- ------------------------- AttributeError Traceback (最近一次调用最后一次) in () ----> 1 coreml_model = coremltools.converters.keras。转换(模型,输入名称=“输入”,输出名称=“输出”)/Users/Jacopo/anaconda/envs/KerasTensorFlowCoreML/lib/python2.7/site-packages/coremltools/converters/keras/_keras_converter.pyc 在转换(模型, input_names, output_names, image_input_names, is_bgr, red_bias, green_bias, blue_bias, gray_bias, image_scale, class_labels, predicted_feature_name, predicted_probabilities_output) 489 predict_probabilities_output = predict_probabilities_output) 490 elif _HAS_KERAS2_TF: --> 491 来自 . 导入 _keras2_converter 492 返回 _keras2_converter._convert(模型 = 模型,493 input_names = input_names,
我在 macOS 上使用 Python 2.7
如前所述,这是一个非常简单的线性回归,模块根本没有图像输入。
有什么提示吗?
谢谢,雅各布
python - LSTM (Core ML) 处理序列
我已经通过 coremltools 将带有 LSTM 的 Caffe 模型转换为 CoreML。现在我正在尝试执行它。但是,我找不到处理整个序列的方法
因为我找不到仅设置隐藏状态(LSTM_1_c_in)和初始历史记录(LSTM_1_h_in)的初始值并在处理下一项序列时自动使用先前状态/结果的方法。
它通过手动重新启动方法“预测”来工作,并从以前的输出中手动设置LSTM_1_c_in和LSTM_1_h_in (模型分别重新启动LSTM_1_h_out和LSTM_1_c_out)。
是否可以通过 1 次运行处理整个序列?
使用 Swift 的 PS 方式也是可以接受的。