编译 CoreML 模型

【AI】用iOS的ML(机器学习)创建自己的AI App 在机器学习中,一切都始于模型,这是进行预测或识别的系统。教计算机学习涉及使用训练数据的机器学习算法进行学习。从训练中生成的输出通常称为机器学习模型。有不同类型的机器学习模型来解决同一个问题(例如对象识别),但使用不同的算法。是其中一些机器学习算法。 阅读详情

本篇文章译自英文文档 Compile CoreML Models
作者是 Joshua Z. Zhang,Kazutaka Morita,Zhao Wu
更多 TVM 中文文档可访问 →Apache TVM 是一个端到端的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。 | Apache TVM 中文站

本文介绍如何用 Relay 部署 CoreML 模型。

首先安装 coremltools 模块,可通过 pip 快速安装:

pip install -U coremltools --user

或参考官网:https://github.com/apple/coremltools

import tvm
from tvm import te
import tvm.relay as relay
from tvm.contrib.download import download_testdata
import coremltools as cm
import numpy as np
from PIL import Image

加载预训练的 CoreML 模型

这个例子使用 Apple 提供的预训练的 mobilenet 分类网络。

model_url = "https://docs-assets.developer.apple.com/coreml/models/MobileNet.mlmodel"
model_file = "mobilenet.mlmodel"
model_path = download_testdata(model_url, model_file, module="coreml")
# 现在磁盘上有 mobilenet.mlmodel 模型
mlmodel = cm.models.MLModel(model_path)

加载测试图像

还是用猫的图像:

img_url = "https://github.com/dmlc/mxnet.js/blob/main/data/cat.png?raw=true"
img_path = download_testdata(img_url, "cat.png", module="data")
img = Image.open(img_path).resize((224, 224))
# Mobilenet.mlmodel 的输入是 BGR 格式
img_bgr = np.array(img)[:, :, ::-1]
x = np.transpose(img_bgr, (2, 0, 1))[np.newaxis, :]

在 Relay 上编译模型

现在应该对这个过程较为熟悉了。

target = "llvm"
shape_dict = {"image": x.shape}

# 解析 CoreML 模型,并转换为 Relay 计算图
mod, params = relay.frontend.from_coreml(mlmodel, shape_dict)

with tvm.transform.PassContext(opt_level=3):
    lib = relay.build(mod, target, params=params)

输出结果:

/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
  "target_host parameter is going to be deprecated. "

在 TVM 上执行

这个过程与其他示例的相同。

from tvm.contrib import graph_executor

dev = tvm.cpu(0)
dtype = "float32"
m = graph_executor.GraphModule(lib["default"](dev))
# 设置输入
m.set_input("image", tvm.nd.array(x.astype(dtype)))
# 执行
m.run()
# 得到输出
tvm_output = m.get_output(0)
top1 = np.argmax(tvm_output.numpy()[0])

查找分类集名称

在 1000 个类的分类集中,查找分数最高的第一个:

synset_url = "".join(
    [
        "https://gist.githubusercontent.com/zhreshold/",
        "4d0b62f3d01426887599d4f7ede23ee5/raw/",
        "596b27d23537e5a1b5751d2b0481ef172f58b539/",
        "imagenet1000_clsid_to_human.txt",
    ]
)
synset_name = "imagenet1000_clsid_to_human.txt"
synset_path = download_testdata(synset_url, synset_name, module="data")
with open(synset_path) as f:
    synset = eval(f.read())
# 结果应为 Top-1 id 282 class name tiger cat
print("Top-1 id", top1, "class name", synset[top1])

输出结果:

Top-1 id 282 class name tiger cat

下载 Python 源代码:from_coreml.py

下载 Jupyter Notebook:from_coreml.ipynb

【tfcoreml】tensorflow向CoreML模型的转换工具封装 tensorflow 模型转换为coreml模型 安装工具过程记录 阅读详情

相关推荐

Whisper.cpp性能优化指南:如何用CoreML让M1芯片转录速度提升3倍

本文详细介绍了如何通过CoreML优化Whisper.cpp在M1芯片上的性能,实现转录速度提升3倍。从CoreML加速原理、环境配置到编译参数优化,提供了完整的性能调优指南,帮助开发者充分发挥M系列芯片的硬件潜力,适用于语音转文字、实时字幕生成等场景。

weixin_28040125的博客 131

iOS:使用 Core ML 进行机器学习初探

由训练一个情感语言分类模型开始,介绍模型的训练过程和如何将模型运用于工程中

Here is prician 6310

NNVM AI框架编译器

NNVM AI框架编译器 深度学习已变得无处不在且不可或缺。看到对在多种平台(例如手机,GPU,IoT设备和专用加速器)上部署深度学习工作负载的需求不断增长。TVM堆栈弥合深度学习框架与面向性能或效率的硬件后端之间的鸿沟。TVM堆栈使为深度学习框架轻松构建端到端编译变得容易。拥有适用于所有框架的统一解决方案更好。 NNVM编译器是一种开放式深度学习编译器,用于将前端框架工作负载直接编译到硬件后端。使用TVM堆栈中的两级中间表示(IR)来构建。可以参考原始的TVM公告,以获取有关TVM堆栈的更多技术细节。借助

吴建明wujianming_110117 750

深入浅出 Core ML

Machine Learning 基本介绍 机器学习是一门人工智能的科学。它通过对经验、数据进行分析,来改进现有的计算机算法,优化现有的程序性能。其基本流程如下图: 如图,机器学习有三个要素: 数据(Data) 学习算法(Learning Algorith) 模型(Model) 以图片分析 App 为例,这个场景下的数据、学习算法和模型分别对应: 数据:各种花的图片。这些数据称为此次机器学...

H.A.N的博客 1600

Whisper.cpp + CoreML 极速转录:M 芯片 Mac 音频转文字实战指南

本文详细介绍了如何在搭载M系列芯片的Mac上,通过Whisper.cpp结合CoreML框架,实现本地音频的高速转录。文章提供了从环境配置、模型下载与转换(支持GPU与神经网络引擎加速)到实战编译与转录的完整指南,帮助用户充分释放Mac M芯片的硬件潜力,获得远超CPU方案的转录速度与能效。

weixin_29195217的博客 344

Core ML 简介:构建简单的图像识别应用程序

Core ML 的另一个额外功能是,只要将其转换为 Core ML 模型,您就可以使用预先训练的数据模型。作为应用程序开发人员,我们主要关心的是如何将这个模型应用到我们的应用程序中来做一些非常有趣的事情。幸运的是,借助 Core ML,Apple 可以轻松将不同的机器学习模型集成到我们的应用程序中。您可以构建自己的模型,但在本演示中,我们将使用 Apple 开发者网站上提供的预先训练的模型。您需要知道的是,我们将拍摄的图像转换为数据模型可以接受的内容。这不是代码的问题,而是训练模型的问题。

xubaimiao的专栏 947

TVM-CN项目教程:使用Relay编译部署CoreML模型

TVM-CN项目教程:使用Relay编译部署CoreML模型 前言 在机器学习模型部署领域,TVM作为一个高效的深度学习编译器,能够将各种框架训练的模型转换为可在多种硬件后端高效运行的格式。本文将重点介绍如何使用TVM的Relay前端来编译和部署Apple CoreML格式的模型。 CoreML模型简介 CoreML是Apple推出的机器学习框架,专为iOS、macOS等Apple平台优化。Cor...

gitblog_00930的博客 369

如何使用 Apple 人工智能本地绘画:使用 Core ML 实现集成Stable Diffusion(教程含源码)

苹果公司继续以其突破性的创新铺平道路。其中一项创新是 Apple ML Stable Diffusion,这是一款利用 Apple Silicon 上 Core ML 功能的强大工具。本文旨在引导读者了解稳定扩散的细微差别,为他们提供实用的见解、代码片段、最佳实践和全面的“操作方法”。到最后,读者将有能力将该技术无缝集成到他们的项目中。

iCloudEnd的博客 922

Mac M 芯片 + Whisper.cpp 极速转录实战:CoreML 加速与多语言处理指南

本文详细介绍了如何在搭载M系列芯片的Mac上,通过Whisper.cpp结合CoreML加速实现高效本地音频转录。文章从环境搭建、CoreML模型转换、编译优化到多语言处理与实战技巧,提供了一套完整的指南,帮助用户充分利用苹果硬件神经网络引擎,实现数倍性能提升,满足离线、快速、准确的语音转文字需求。

weixin_29188043的博客 379

AI模型部署到移动端原理与代码实战案例讲解

AI模型部署到移动端原理与代码实战案例讲解 1. 背景介绍 1.1 问题的由来 随着移动互联网的普及,越来越多的应用场景需要AI模型进行实时处理,以提供快速响应和精准服务。然而,传统的服务器端AI模型往往受限于计算资源、带宽和延迟的要

AI架构师小马 759

智慧工地算法视频分析服务器区域入侵检测AI视频分析技术在煤矿的实战应用

通过实时分析和处理井下视频资料,智慧矿山算法视频分析服务器不仅能够及时发现并预警人员违规行为和设备异常状况,还能够通过智能分析预防潜在的安全风险,从而显著提高煤矿的安全管理水平和生产效率。

EasyDarwin开源社区技术博客 560

NNVM前端框架集成:CoreML、Darknet、Keras模型迁移指南

NNVM是一个功能强大的深度学习编译器,支持将多种主流框架的模型无缝迁移到统一的执行环境中。本文将详细介绍如何使用NNVM实现CoreML、Darknet和Keras模型的高效迁移,帮助开发者轻松跨平台部署深度学习模型。 ## 为什么选择NNVM进行模型迁移? NNVM作为深度学习编译器的核心组件,为模型迁移提供了三大关键优势: - **多框架兼容**:通过统一的中间表示,支持CoreML、

gitblog_00781的博客 1033

Bugku中的source

进入环境后 我们首先查看源码可以得到一个flag 这肯定是个假的(已经提交过了确实是个假的) 题目提示要用Linux 这里使用的是kali 我们首先dirsearch一下这个网站 可以看到有.git文件泄露 也可以点开那个链接但是在里面没有找到flag 然后选择下载这个.git文件 然后进入这个文件夹 输入git reflog查看文件状态 可以看到有四个都有flag is here 一个一个查看git show 然后在40c6d51中发现了我们需要的fl

A272036149的博客 1011

Mask-RCNN-CoreML 项目常见问题解决方案

Mask-RCNN-CoreML 项目常见问题解决方案 基础介绍 Mask-RCNN-CoreML 是一个开源项目,它将 Mask-RCNN 模型集成到了 Core ML 框架中,以便在 iOS 设备上实现实时物体检测和分割。该项目主要使用 Swift 和 Objective-C 编程语言,依赖于 Metal 和 Accelerate 框架来提升性能。 新手常见问题及解决步骤 问题一:如何快速开始...

gitblog_01080的博客 464

VS code平台调试AutoLISP程序教程

VS code平台调试AutoLISP程序教程

BearElder的博客 3184

Android System Slice应用加载分析,及启用Slice后,锁屏日期第一次开机正常显示,但后面锁屏不显示问题分析

最近发现Android P上锁屏界面,日期不显示,发现从P开始后,出现了Slice来允许应用以模块化,可交互的方式,插入多个使用场景。Android P的system UI 也使用到了这一特性,表现为锁屏时间,日期,勿扰图标,闹钟等。 如何使用Slice 以System UI中KeyguardSliceView.java来说明它的使用方法 首先,我们打开System UI 的mk 文件,可以看到以...

qq_33595823的博客 3035

《基于CoreML的iOS神经风格转移示例项目常见问题解决方案》

《基于CoreML的iOS神经风格转移示例项目常见问题解决方案》 1. 项目基础介绍和主要编程语言 本项目是一个使用CoreML在iOS上实现神经风格转移的简化示例。通过该项目,开发者可以了解如何将一个预训练的神经网络模型集成到iOS应用中,实现将一张图片的风格应用到另一张图片上的效果。主要编程语言为Swift,同时也包含了一些Python代码用于模型的训练和转换。 2. 新手常见问题及解决方案 ...

gitblog_00700的博客 388

python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法

出现该Bug的原因主要是 账号密码无法登录,但原先使用该代码测试qq或者163的时候是可以通过的!问题在于各个公司邮件所处理的代码方式不一样

码农研究僧的博客 3503

win10下编译和使用mnn 2021

mnn在win上进行编译并不如意,因为官方提供的文档根本很难成功进行编译,各种bug报个不停 因此打算记录一下较简单的编译方式: (1)去github下载mnn源码 git clone https://github.com/alibaba/MNN (2)打开vs2019(或者vs2017)专用的命令行窗口 因为我是64位的系统,因此选择的x64 native tools command prompt for vs2019 (3)cd到mnn源码的路径里 (4)mkdir build (...

jacke121的专栏 3729

timing window file中的S L T指什么意思

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 774

从0到1用OpenClaw打造酒店收益管理系统:数据整合→AI策略迭代全链路落地实战

本文基于三亚某连锁海景酒店真实项目落地经验编写,系统上线3个月,酒店平均入住率从62%提升至80%,RevPAR(平均可售房收入)提升26%,淡季空置率降低46%,完全覆盖中小酒店全场景收益管理需求。本文配套OpenClaw全量Skill代码、工作流配置文件,可直接复用落地。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 492

Reducing the Size of Your Core ML App

Article Reducing the Size of Your Core ML App Reduce the storage used by the Core ML model inside your app bundle. Overview Bundling your machine learning model in your app is the easiest way to g...

mandagod的博客 338

RT-DETR改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU等)

本文记录的是改进RT-DETR的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 1922

ios-cmake 使用add_custom_command执行xcrun命令

需求 在一个由CMake管理着的底层算法库中,有一个自己训练出来的detect_model.mlmodel,需要编译并生成相应的文件,并在ios和osx中使用。 方法有两个: 直接将detect_model.mlmodel拖入Xcode中,会自动生成所需文件。 使用指令编译并生成(参考): mkdir output xcrun coremlc compile detect_model.mlmo...

qq_38743313的博客 617

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

StyleTransfer-iOS 项目常见问题解决方案

StyleTransfer-iOS 项目常见问题解决方案 项目基础介绍 StyleTransfer-iOS 是一个基于 CoreML 的 iOS 风格迁移项目。该项目的主要目的是在 iOS 设备上实现风格迁移功能,即将一张图片的风格应用到另一张图片上。该项目使用的主要编程语言是 Swift 和 Objective-C。 新手使用注意事项及解决方案 1. 环境配置问题 问题描述:新手在配置开发环境时...

gitblog_01038的博客 302

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Mac M芯片极速转录:Whisper.cpp与CoreML实战优化指南

本文详细介绍了如何在搭载M系列芯片的Mac上,通过Whisper.cpp与CoreML技术实现音频转录的极致加速。文章提供了从环境搭建、CoreML模型转换到编译优化的完整实战指南,帮助用户将计算任务卸载至GPU和神经网络引擎,从而将转录速度提升2-3倍,充分发挥Mac M芯片的硬件潜力。

lambda的博客 858

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 药物 3D 打印新突破:圣地亚哥大学用机器学习筛选喷墨打印生物墨水,准确率高达 97.22%
下一篇: 两位国际院士与史学家哲学家激辩 AI,你站哪队?
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值