当前位置: 首页 > news >正文

TensorFlow Lite中文本分类在Android上的实践

#1 Tensorflow Lite

        TensorFlow Lite(后续简称TFL) 是 Google 开发的一个用于移动设备和嵌入式设备的开源库,旨在为移动终端设备提供机器学习推断。它是 TensorFlow 框架的轻量级版本,专门优化了模型的大小和性能,以适应资源受限的移动设备嵌入式系统

        TFL 提供了一种在移动设备上运行 TensorFlow 模型的轻量级解决方案。它提供了一个执行模型推断的运行时引擎,允许开发者将 TensorFlow 模型转换为适用于移动设备的紧凑格式。这种转换过程包括模型量化、剪枝和优化等技术,以减小模型的空间占用并提高推断速度

#2 机器学习和文本分类

        机器学习在文本分类中可以应用于识别骚扰短信和垃圾影评等多种场景。下面是针对每个问题的简要解释:

  1. 骚扰短信识别:通过机器学习可以训练模型来识别和分类骚扰短信。这需要准备一个标记好的数据集,其中包含已知的骚扰短信和非骚扰短信样本。基于这个数据集,可以使用监督学习算法,如朴素贝叶斯分类器、支持向量机(SVM)或深度学习模型,训练一个分类器来自动判断新的短信是否属于骚扰类别。
  2. 垃圾评价识别:如在电影和产品评价的场景中,利用机器学习技术可以帮助识别和分类垃圾影评。这需要准备一个标记好的数据集,其中包含了垃圾影评和非垃圾影评的样本。使用监督学习算法,如逻辑回归、决策树或卷积神经网络(CNN),构建一个模型来分析文本特征并识别垃圾影评。

        关键是准备一个有代表性的、经过标注的数据集,并选择适合任务的机器学习算法进行训练和测试。另外,特征工程也是很重要的,可以提取文本的关键词、情感特征、句法结构等,帮助算法更好地理解文本数据。

        需要注意的是,由于骚扰短信和垃圾影评的形式多样且不断演化,仅依靠机器学习的方法可能难以完全避免误判和漏判。因此,建议将机器学习与其他技术,如自然语言处理、深度学习和人工智能的方法相结合,以提高分类器的准确性和鲁棒性。此外,定期更新和维护模型也是确保分类效果持续有效的重要步骤。

#3 TFL的优点

  1. 高性能推断:TFL通过利用移动设备的硬件加速器(如 GPU、DSP)以及优化的执行引擎,提供高效的模型推断服务。这使得在资源受限的设备上运行复杂的模型成为可能。
  2. 轻量级模型:TFL 专注于减小模型的体积,以适应移动设备的存储和网络传输限制。这通过模型压缩技术,如量化和剪枝,实现了较小的模型文件大小。
  3. 灵活的部署:TFL支持多种平台和设备,包括 Android、iOS、嵌入式设备和边缘设备等。开发者可以通过 TFL 提供的 API 将模型集成到应用程序中,并轻松地部署到目标设备上。
  4. 开发者友好:TFL 提供了丰富的工具和文档,使开发者可以方便地进行模型的转换、优化和部署。

TFL的官方网站:https://www.tensorflow.org/lite

#4 TFL使用步骤

        TFL使用的核心步骤是:训练模型->保存模型->转化模型->执行预测。

        而TFL提供了模型本身、保存、预测的框架。对于开发者而言,均可以开盖即用,而影响最终效果的因素在于:提供足够的数据集和满足需求的模型架构

#5 详细步骤

        首先,在TFL中选项预期使用的基础模型,包含类型(图形识别、文字分类、音频等)、格式、TF版本等可以直接搜索。

        举个例子,如图像分类,可以使用mobilenet_v2模型。

        剩下的步骤就很简单,直接使用模型导入数据,并用tf.saved_model.save保存模型即可,推荐SaveModel格式。

#6 文本分类器的模型架构

        每个model_spec对象代表了一个文本分类器的具体模型,TFL Model Maker目前支持MobileBERT,平均单词嵌入向量和BERT-Base模型。

        综上,MobileBERT更适合在Android设备上运行,但由于它是一个复杂模型,所以训练时会花费更多的时间(该成本不会影响到用户)

#7 TFL本地模型训练

        TFL模型由TFL Model Maker库进行了简化,方便再设备端ML应用中部署并调整参数输入。这里以电影评论为例子,该本文分类模型会将文本分为预定义类别。输入应为经过预处理的文本,而输出为类别的概率。简单来说,根据影评内容,判断是否为正常影评或垃圾影评。

7.1 TFL环境搭建

首先,除了基本的python外,搭建TLF Model Marker环境还需要额外下载的库:

sudo apt -y install libporta
http://www.lryc.cn/news/289908.html

相关文章:

  • 使用vscode查bug
  • LC 2846. 边权重均等查询
  • RabbitMQ简单模式和工作模式
  • c语言实战之贪吃蛇
  • Midjourney图片生成描述词记录(今天一天)
  • 类和对象 第五部分第四小节:赋值运算符重载
  • Django从入门到精通(一)
  • 数据库分表分库的原则
  • Java技术栈 —— Docker容器
  • Mysql大数据量分页优化
  • QT tcp与udp网络通信以及定时器的使用 (7)
  • web架构师编辑器内容-添加自动保存的功能
  • 【Redis】关于它为什么快?使用场景?以及使用方式?为何引入多线程?
  • SpringBoot之JWT登录
  • 【备战蓝桥杯】——循环结构
  • 【数据分享】1929-2023年全球站点的逐年平均气温数据(Shp\Excel\免费获取)
  • 探索Pyecharts关系图绘制技巧:炫酷效果与创意呈现【第42篇—python:Pyecharts水球图】
  • 蓝桥杯-循环节长度
  • Jython调用openwire库连接activemq转发topic订阅消息到另一个activemq 服务器上 完整代码
  • 面试经典题---30.串联所有单词的子串
  • 字符串随机生成工具(开源)-Kimen(奇门)
  • UE4 CustomDepthMobile流程小记
  • Docker 基础篇
  • Idea上操作Git回退本地版本,怎么样保留已修改的文件,回退本地版本的四种方式代表什么?
  • vue3封装el-pagination分页组件
  • 负载均衡下Webshell连接思路及难点
  • 基于链表实现贪吃蛇游戏
  • Python网络爬虫实战——实验6:Python实现js逆向与加解密
  • 【python】使用aiohttp库编写一个简单的异步服务器
  • 新手使用代理IP接入代码教程