当前位置:

首页 > 业界资讯 > 还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

开篇前几日与一位从事开发3年的朋友小李聊天,得知他所在的企业正在进行机器学习相关的项目。最近,他接到了一个任务,就是将训练好的机器学习模型进行部署。这可愁坏了小李,他接触机器学习开发差不多有小半年了,主要从事收集数据、数据清洗、搭建环境、训练模型、模型评估的相关工作,但做模型部署还是第一次。于是,我根据自己的经验针对机器学习的模型部署进行了科普。如图1所示,在传统编程中,我们将规则和数据传递给程序获得我们想要的答案,而对于机器学习而言,我们是通过答案和数据训练出规则,这个规则就是机器学习的模型。图1传

本文目录

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    开篇

    前几日与一位从事开发3年的朋友小李聊天,得知他所在的企业正在进行机器学习相关的项目。最近,他接到了一个任务,就是将训练好的机器学习模型进行部署。这可愁坏了小李,他接触机器学习开发差不多有小半年了,主要从事收集数据、数据清洗、搭建环境、训练模型、模型评估的相关工作,但做模型部署还是第一次。

    于是,我根据自己的经验针对机器学习的模型部署进行了科普。如图1 所示,在传统编程中,我们将规则和数据传递给程序获得我们想要的答案,而对于机器学习而言,我们是通过答案和数据训练出规则,这个规则就是机器学习的模型。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图1 传统编程和机器学习的区别

    而机器学习的模型部署就是要将这个规则(模型)部署到需要应用机器学习的终端上。如图2 所示,机器学习所训练出来的模型,可以理解为函数、API或者SDK,部署到对应的终端上(图中灰色部分)。部署之后终端就具备模型所赋予的能力,此时输入新的数据就可以根据规则(模型)得到预测的结果。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图2 机器学习模型部署原理

    TensorFlow 机器学习部署框架

    小李听了我的介绍表示能够理解,并饶有兴致地将他们项目的部署情况向我全盘托出,想征求我的意见。如图3所示,他们要将一个图像识别的模型分别部署到IOS、Android、树莓派、Web浏览器以及服务器端。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图3 模型部署场景

    从部署的应用场景来看,具有轻量级、跨平台的特点。同一个机器学习模型要部署到多个不同的平台,每个平台的存储和运算能力都不相同。同时,还是兼顾模型运行的可用性、性能、安全性、可扩展性,需要使用相对稳定的大平台。于是,我把TensorFlow 的机器学习部署框架推荐给他。如图4所示,TensorFlow的部署框架针对不同平台分别提供组件进行支撑。其中Android、IOS、树莓派对应的是TensorFlow Lite,它是专门用于移动端的模型部署框架。浏览器端可以使用TensorFlow.js,而服务器端可以使用TensorFlow Serving。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图4 TensorFlow 机器学习模型部署框架

    TensorFlow Lite 实际操作

    小李想了解更加具体的部署过程,刚好我手上有一个项目用到了TensorFlow 的部署框架,于是将其过程演示给他看看。这个项目是要将“猫狗识别”的模型部署到Android 手机上,由于IOS 、Android、树莓派、浏览器都属于客户端,其拥有的运算资源不可能和服务器相比。特别是移动端的应用都有轻量、低延迟、高效、隐私保护、省电等特点,因此TensorFlow 对其进行的专门的部署设计,并使用TensorFlow Lite 对其进行部署。

    利用TensorFlow Lite 对模型进行部署需要三步:

    1.  使用TensorFlow 训练模型。
    2.  转化TensorFlow Lite 格式。
    3. 使用TensorFlow Lite 解释器加载执行。

    第一步,我们在模型训练已经完成了,第二步是将生成好的模型转化成TensorFlow Lite 能够识别和使用的模式格式。正如上面所提到的,模型是在移动端使用的需要考虑各方面的问题,因此需要针对移动端生成专门的文件格式。第三部就是将转化好的TensorFlow Lite文件加载到移动端的解释器中并执行。

    由于我们的重点在模型的部署,因此第一步的训练模型暂时跳过,也就是假设你已经训练好模型了。针对第二步的模型转化可以参考图5,TensorFlow 的模型会通过Converter 将其转化成后缀是”.tflite”的模型文件,然后发布到不同的平台,通过每个平台上的解释器对其进行解释和加载。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图5 TensorFlow Lite 模型转化架构

    模型保存和转化

    上面介绍了TensorFlow Lite 的架构,这里需要将模型保存为TensorFlow 模型,并对其进行转化。如图6 所示,我们调用TensorFlow 中的saved_model.save方法将model(训练好的模型)保存在指定目录中。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图6 保存TensorFlow 模型

    保存完模型之后就是转化模型了,如图7 所示,调用TensorFlow Lite 中的TFLiteConverter包中的from_saved_model方法生成converter(模型转化器)的实例,然后调用converter中的convert方法对模型进行转化,并将转换好的文件保存到指定目录。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图7 转化为tflite 模型格式

    加载应用模型

    由于本例是针对Android 系统的模型部署,因此需要在Android 中引入TensorFlow Lite的依赖。如图8 所示,引入TensorFlow Lite的依赖,同时在aaptOptions 中设置noCompress 为“tflite”意思是对与“tflite”的文件不进行压缩,如果设置压缩Android系统可能无法识别tflite的文件。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图8 项目中引入TensorFlow Lite的依赖

    配置好依赖之后,再将转换好的tflite文件拷贝到assets文件下面,如图9所示,等下会加载这个文件执行机器学习的模型。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图9 添加tflite文件

    添加完tflite文件之后,我们会创建Classifier 分类器,用来对“猫狗”图片进行分类。如图10 所示,在Classifer中的init中会对解释器(interpreter)进行初始化,调用loadModuleFlie方法加载tflite文件,同时指定分类标签(labelList),这里的标签就是“cat dog”(猫狗)。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图10 初始化解释器

    在创建分类器之后,就是利用猫狗的分类模型对图片进行识别了。也就是在Classifier类中,如图10所示,convertBitmapToByteBuffer方法输入参数是bitmap,这个是我们输入的猫狗的图片,在这个方法中会对其进行转化,特别注意的是在for 循环中对红绿蓝三个通道转化,将转换的结果放入到byteBuffer 中并且返回。recoginzeImage 方法会调用convertBitmapToByteBuffer,并利用解释器interpreter 的run方法执行图片识别的工作,也就是利用机器学习的模型识别猫狗的图片。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图11 对图片进行识别

    上面的图形转化过程过于抽象,我们将其具体为图12 所示内容。我们输入的图像是图左上方的395*500的图片,会把imageView中的图片转化为bitmap的形式。由于我们的模型输入需要224*224 的格式,因此需要做一次转换。接着,把像素放入到224*224 的ByteBuffer的数组中保存,最后对RGB(红绿蓝)的像素进行归一化(除以255),作为模型的输入参数。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图12 输入图像的转化过程

    到这里机器学习模型的加载和应用就完成,当然还少不了输入的文件和布局。如图13 所示,我们在drawable 文件夹下面存放需要预测的图片(猫狗图片)。然后在layout下面创建activity_image_classifier.xml文件用来构建存放ImageView。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图13 输入图片文件和布局文件

    最后,创建ImageClassifierActivity 用来展示图片和响应识别图片的事件。如图14 所示,在initViews方法中绑定每张图片的onclick事件,然后在onclick方法中调用recoginzie Image方法对图片进行识别。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图14 在onclick 中执行图片识别

    让我们来看看效果。如图15 所示,当点击对应图片以后会显示“dog”的提示,表示预测结果。

    还不会机器学习模型部署?15 张图带你走进TensorFlow 部署框架!

    图15 演示效果

    回顾整个过程并不复杂,我将TensorFlow lite 部署模型总结为如下几步:

    1.  保存机器学习模型。
    2. 转化模型为tflite格式。
    3.  加载tflite格式的模型。
    4.  利用解释器加载模型。
    5.  输入参数预测结果。

    想更进一步学习TensorFlow 模型部署技能的同学,可以去学TensorFlow的官方课程,在中国大学MOOC上注册一个账号,免费学习:​​https://www.icourse163.org/course/youdao-1467217161?from=searchPage&outVendor=zw_mooc_pcssjg_。​​

    还有谷歌开发者专家做的部署在线讲解和答疑,非常不错,推荐想初步了解TensorFlow 部署功能的同学关注看看 ​​https://zhibo.51cto.com/liveDetail/373。​​

    结尾

    小李听了我对机器学习模型部署的讲解以及了解TensorFlow 部署的过程以后,对部署实操更是跃跃欲试。我觉得用TensorFlow 部署过程逻辑清晰,方法简单易行,对于3-5年经验的开发人员来说容易上手。另外,TensorFlow官方还提供了《TensorFlow入门实操课程》,适合机器学习零基础的新手:​​https://www.icourse163.org/course/youdao-1460578162?from=searchPage&outVendor=zw_mooc_pcssjg_。​​

    作者介绍

    崔皓,51CTO社区编辑,资深架构师,拥有20年架构经验。曾任惠普技术专家,参与多个机器学习项目,撰写、翻译20多篇机器学习、NLP等热门技术文章。《分布式架构原理与实践》作者。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    业界资讯 人工智能 机器学习
    相关文章 更多
    claude怎么收费最新价格与会员收费标准详解
    claude怎么收费最新价格与会员收费标准详解

    想了解Claude怎么收费?本文梳理了Claude Free、Pro及Team版的最新月费价格、消息限额与高级功能权益,并对比了不同层级的性价比,助你快速找到适合的AI办公伙伴。

    sora使用指南国内使用的具体操作步骤教程
    sora使用指南国内使用的具体操作步骤教程

    本文详细解析Sora在国内的使用现状,指出目前官方未对公众开放注册,提醒用户警惕虚假链接,并提供关注官方动态及替代方案的实用建议。

    南邮光擎智算团队:GaN基Micro-LED光计算芯片从理论到流片的突破
    南邮光擎智算团队:GaN基Micro-LED光计算芯片从理论到流片的突破

    南京邮电大学“光擎智算”团队联合南京大学,攻克GaN基Micro-LED器件技术,成功搭建实验室级光计算验证系统。团队自主研发的5×5 Micro-LED光电计算阵列芯片已进入流片封装阶段,实现了图像识别等算力任务验证,推动光计算技术从理论走向工程落地。

    苹果与铠侠签署NAND长期供应协议:3-5年长约与不设价格上限背后的供应链战略
    苹果与铠侠签署NAND长期供应协议:3-5年长约与不设价格上限背后的供应链战略

    苹果与铠侠签署为期3-5年的NAND闪存长期供应协议,且可能不设价格上限。此举旨在应对AI数据中心需求激增导致的芯片供应紧张,从单纯压价转向确保稳定供货。

    中国人民大学AI团队揭开大语言模型的隐藏秘密
    中国人民大学AI团队揭开大语言模型的隐藏秘密

    一项研究揭示大语言模型在文本嵌入任务中表现平庸的根源:反嵌入矩阵边缘频谱引入高频词偏见。提出的EmbedFilter方法通过滤除该噪声,在MTEB49项任务上显著提升性能,且无需重新训练,兼容多种基线方法。

    2026世界人工智能大会倒计时30天:全球首发超300款AI新品
    2026世界人工智能大会倒计时30天:全球首发超300款AI新品

    2026年世界人工智能大会将于7月17日至20日举办,超过300款人工智能新品全球首发,1400多位嘉宾参会,近140场论坛,展览面积超过10万平方米,促成意向合作金额达162亿元,并且推出首个自主举办的国际顶级人工智能学术会议。

    “购物车”里的新动向 勾勒扩内需新图景
    “购物车”里的新动向 勾勒扩内需新图景

    618”期间,AI全面渗透电商,超百万商家使用AI工具提升效率。政策补贴拉动绿色智能家电及汽车消费,市场回暖。供应链升级实现仓配一体化,时效大幅提升,多链协同激活内需活力。

    美颜悖论与文艺作品的“活人感”
    美颜悖论与文艺作品的“活人感”

    AI生成作品虽完美却缺乏“活人感”,这一悖论贯穿艺术史。《红楼梦》中已批判套路化创作。真正活人感源于创作者内化形式美规律后的即兴发挥与平衡,而非单纯拒绝美化。能否尊重生活细节、容忍碰撞,决定作品是否鲜活,这也是艺术的根本功用。

    8部门发文加快“人工智能+消费”:服务领域是重点 鼓励适度超前布局城市智能设施
    8部门发文加快“人工智能+消费”:服务领域是重点 鼓励适度超前布局城市智能设施

    商务部等8部门发布《关于加快“人工智能+消费”发展的实施意见》,围绕服务消费和商品消费两大领域,明确居家、养老、文旅、教育等场景的AI应用方向,推广智能家居、养老机器人等产品,并适度超前布局城市智能设施。

    商汤携手香港科技园共建4万P国产算力基建,首阶段预计今年完成
    商汤携手香港科技园共建4万P国产算力基建,首阶段预计今年完成

    商汤与香港科技园合作共建国产AI算力中心,目标2030年前实现超40000P算力规模,首阶段预计今年完成。该中心配备国产GPU集群,支撑模型训练与推理,服务本地及国际客户。商汤临港AIDC已有4.04万P算力运营经验。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。