有没有办法让 CoreML 模型在源代码级别适用于 iOS11+

2024-01-20

我的应用程序中有一个 CoreML 模型。

在运行时,预测功能应在 iOS8-10 上禁用,并在 iOS11 上激活。

为了能够在使用 CoreML 的所有类上进行编译,我添加了:

@可用(iOS 11.0,*)

但 .mlmodel 在每次重建时都会生成 Swift 代码,并丢弃所有注释。因此会产生编译错误,例如:

“MLModel”仅适用于 iOS 11.0 或更高版本

Xcode9中有没有办法使mlmodel仅适用于iOS11?

EDIT:此错误已在 XCode 9 beta 4 中修复。不再需要解决方法。


更新。 2017 年 7 月 25 日:苹果刚刚推出new API https://developer.apple.com/documentation/coreml/mlmodel/2921516-compilemodel用于在设备上编译模型。这意味着您现在可以避免步骤 1-4。

  1. (可选)切换到 Xcode betasudo xcode-select --switch /Applications/Xcode-beta.app/Contents/Developer.
  2. 编译你的模型:xcrun coremlcompiler compile /path/to/MyModel.mlmodel /path/to/output/folder.
  3. 放入编译好的模型文件夹MyModel.mlmodelc到您的应用程序包中。
  4. Add auto-generated swift model class (MyModel.swift) to your project manually and annotate it with @available(iOS 11.0, *). How to find model class
  5. 加载并初始化您的模型:

    let path = Bundle.main.path(forResource: "MyModel", ofType: "mlmodelc")

    让 url = URL(fileURLWithPath: 路径!)

    让模型=尝试!我的模型(内容:网址)

Warning:我还没有尝试将此类应用程序上传到应用程序商店。 我已经在我的测试设备上尝试过了,它可以工作,我只是不确定它在发布到 App Store 后是否还能继续工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法让 CoreML 模型在源代码级别适用于 iOS11+ 的相关文章

随机推荐

  • 使用 clang-llvm 编译器在 CUDA 中添加对类似于 __shared__ 的内存类型的支持

    我正在努力添加类似于的新内存类型 shared 在 CUDA 中称为 noc 需要使用 clang llvm 进行编译 以下是实现对新内存类型的解析的步骤 引用来自answer https stackoverflow com questio
  • TestScope 协程测试中使用的高级示例

    有人可以提供使用新功能的高级示例吗TestScope and TestScope launch使用协程进行测试时 好像在新版里kotlinx coroutines test发布他们添加了一些称为TestScope去图书馆 此外 他们已经废弃
  • Log4j2 JSON 布局:添加 UTC 中的自定义日期字段

    Log4j2 支持JSON 布局 https logging apache org log4j 2 x manual layouts html JSONLayout 我在 log4j2 xml 中添加了一个额外的自定义字段
  • 在 esc 按下时关闭模式(纯 JS)

    我试图让我的模式关闭 有一个类将其设置为display block已删除 在 esc 压力机上 这是我尝试过的 它不起作用并且破坏了我的代码的其余部分 if modal classList contains modal visible do
  • 向数据库中的所有表添加位掩码有用吗?

    一位同事正在向我们所有的数据库表添加位掩码 理论上 这样我们就可以跟踪整个系统中每一行的某些属性 例如 该行是随系统附带的还是由客户在开始使用系统后添加的 该行是否已从表中删除 软删除 该行是否是一组行中的默认值 这是一个好主意吗 这种方法
  • 读取输入流的 N 行并以相反的顺序打印而不使用数组或列表类型结构?

    使用readLine 的方法BufferedReader 您可以在不使用列表或数组的情况下以相反的顺序打印流的前 N 行吗 我认为你可以通过递归来做到这一点 例如 void printReversed int n String line r
  • 添加 css 类以使用 @Html.DropDownList() 进行选择

    经过多年的 Webform 开发 我正在构建我的第一个 MVC 应用程序 但由于某种原因 我无法完成这项工作 Html DropDownList PriorityID String Empty new class textbox 错误信息
  • 在编写干净的 C 代码时利用 ARM 未对齐的内存访问

    ARM 处理器曾经无法正确处理未对齐的内存访问 ARMv5 及更低版本 就像是u32 var32 u32 ptr 只会失败 引发异常 如果ptr未正确对齐 4 字节 不过 编写这样的语句对于 x86 x64 来说效果很好 因为这些 CPU
  • 如何通过命令行填充 CosmosDB 集合?

    我正在为 Azure 开发一组脚本 我想知道如何使用以下命令填充 CosmosDB 集合az 目前 我知道如何创建数据库和集合 但如何初始化数据库 az cosmosdb create resource group RESOURCE GRO
  • GCC 相当于 PDB

    我有一个程序打算分发给最终用户 并希望从他们那里收到崩溃报告 如果我使用 MSVC 我会生成小型转储并将其发送给我 然后使用相应的 PDB 检查它们 至少获得有用的堆栈跟踪 使用 GCC 执行此操作相当于什么 我可以生成堆栈跟踪 但如果我希
  • cordova run android 执行良好。但Android 4.1.2无法启动该应用程序

    我开始使用 Cordova 5 0 0 cordova v 打印 5 0 0 开发 Android 应用程序 并在装有 Android 4 1 2 的 Moto Razr D1 上进行测试 顺便说一句 在 Windows 7 下 cordo
  • Django、ReportLab PDF 生成附加在电子邮件中

    使用 Django 和 ReportLab 生成 PDF 并将其附加到电子邮件的最佳方法是什么 我正在使用 SimpleDocTemplate 并且可以将生成的 PDF 附加到我的 HttpResponse 这很棒 但我无法找到如何将相同的
  • 在独特的类别存档页面上隐藏主类别标题

    我正在构建一个包含许多不同类别的网站 并且需要简单地删除类别标题one存档页面 http redyearclients co uk PandF product category exterior paaving paaving brands
  • npm 命令中 -s 是什么意思?

    我看到以下命令包括 s选项 它有什么作用 s 意思是 因为我没有看到这个选项package json npm run dev s 旗帜 s代表 沉默 适用于npm 而不是命令中的dev脚本 The s标志阻止npm当命令以非零状态退出时 即
  • 用于 C# 对象数据源的 EDI x12 映射器

    有谁知道有什么工具可以将 EDI x12 映射到 C 对象吗 我刚刚查看了 Altova MapForce 但它似乎不支持这一点 出于可移植性原因 我无法使用数据库模式映射 并且如果可以的话 我宁愿避免使用 xml 或平面文件 实际上 Ma
  • LoadRunner web_reg_save_param、ord=all、paramName_count 问题

    我使用的是 LoadRunner 版本 12 02 Build 2739 查看旧的但正确的 指南 表明我已经正确使用了这些语句 第三点 大约页面下方的 1 3 在代码块内 the atoi陈述 http motevich blogspot
  • 使用numpy计算曲率时出错

    我正在尝试使用以下方法计算二维曲线在每个点的曲率公式在这里 http en wikipedia org wiki Curvature Local expressions 我遇到的问题是 虽然我得到了一个应有的恒定值 但该值不是正确的值 这是
  • VB.NET - 从字符串中删除字符

    我有这个字符串 Dim stringToCleanUp As String bon jour Dim characterToRemove As String 我想要一个删除 的函数像这样的字符 Function RemoveCharacte
  • 无法在本地主机上的 Internet Explorer 中加载 jQuery (WAMP)

    我有一段标准的 HTML 但无法让 jQuery 在 IE 上运行 我尝试了IE10和IE11 以及IE10中模拟的IE8和9 我什至尝试使用来自的代码HTML5 样板 https html5boilerplate com 我正在测试 jq
  • 有没有办法让 CoreML 模型在源代码级别适用于 iOS11+

    我的应用程序中有一个 CoreML 模型 在运行时 预测功能应在 iOS8 10 上禁用 并在 iOS11 上激活 为了能够在使用 CoreML 的所有类上进行编译 我添加了 可用 iOS 11 0 但 mlmodel 在每次重建时都会生成