【tensorflowflutterweb】机器学习模型怎样用到前端上(未写完)

书接上回

        在上一章 我们谈了怎么根据项目需求构建一个简单的机器学习模型。

     ​​​​​​ ​​​​​​【tensorflow&flutter】自己写个机器学习模型用在项目上?-CSDN博客文章浏览阅读852次,点赞22次,收藏15次。【tensorflow&flutter】自己写个机器学习模型用在项目上? 拍摄APP项目上线有一阵了,每天的拍摄数据呈现波动上升状态、业务方需要对数据进行加工,如果能有对未来的数据量的预测就好了 。https://blog.csdn.net/qq_36544007/article/details/135404222?spm=1001.2014.3001.5502        其实上期的项目完全可以用tensorflow serving去获取数据,或者是一个web 页面去加载tensorflow js去计算更加方便部署。

        哦,至于你说什么是tensorflow serving、什么是tensorflow js,本期咱们说一下机器学习模型用在前端的几种方式。

部署机器学习模型的方式

        咱们还是继续以tensorflow为例子(大家也可以了解一下PyTorch)

先说总结

         TensorFlow 可提供强大的功能,以便您在任何环境(包括服务器、边缘设备、浏览器、移动设备、微控制器、CPU、GPU、FPGA)中部署模型。TensorFlow Serving 可以在先进的处理器(包括 Google 的自定义张量处理单元 [TPU])上以生产规模运行机器学习模型。
        如果您需要在靠近数据源的位置分析数据,以缩短延迟时间并更好地保护数据隐私,可以借助 TensorFlow Lite 框架在移动设备、边缘计算设备甚至微控制器上运行模型,还可以借助 TensorFlow.js 框架仅使用网络浏览器就能运行机器学习模型

  就是如上所说的一样 可以在设备上、浏览器中、本地云端都可以部署模型。

1.Tensorflow Serving

        先说一下tensorflow serving这种常规后端,直接返回推断好的数据。 比如千人千面的淘宝推荐,头条不同的广告,又或者是这种与前端相对交互更多的:交互式推荐在外卖场景的探索与应用。

简易使用

          很简单 大家可以试一试。先下载Docker,然后按照以下步骤尝试:

# Download the TensorFlow Serving Docker image and repo 下载TensorFlow Serving Docker镜像
docker pull tensorflow/serving
# 获取模型
git clone https://github.com/tensorflow/serving
# 定义模型
TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata"# Start TensorFlow Serving container and open the REST API port 启动TensorFlow Serving容器并打开REST API端口
docker run -t --rm -p 8501:8501 \-v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \-e MODEL_NAME=half_plus_two \tensorflow/serving &# Query the model using the predict API  本地就可以请求了
curl -d '{"instances": [1.0, 2.0, 5.0]}' \-X POST http://localhost:8501/v1/models/half_plus_two:predict# Returns => { "predictions": [2.5, 3.0, 4.5] }

介绍 

         使用docker 实现了:只需要传递参数请求就可以输出推断结果的最简单节点。遇到问题可以参考官方链接或者网上查询。 

        比如大家制作好的模型/网上更有实力的模型/针对项目强化学习的模型 都可以通过这样的情况进行部署,然后通过后端包装一下、或者直接调用。

        适用的场景就如上面所说,还包括我上篇文章的数据推断、票房预测、一次推断多处使用,或者计算量数据大、资源来自服务器的情况。

模型保存格式及使用

         TensorFlow保存模型有2种方式,checkpoint和saved_model格式,其中checkpoint格式用户模型训练过程中的保存,saved_model用户模型线上部署,方便grpc的远程调用。 

        咱们使用saved_model格式,形式如下,serving自动取版本号最高的模型,以下是以saved_model格式00001版本的代码。

 model.save('saved_model/my_model/00001')

2.TensorflowJS

    介绍

     在web上 要用这个 TensorFlow.js 是 TensorFlow 的 JavaScript 版本,支持 GPU 硬件加速,可以运行在 Node.js 或浏览器环境中。

      它不但支持完全基于 JavaScript 从头开发、训练和部署模型,也可以用来运行已有的 Python 版 TensorFlow 模型,或者基于现有的模型进行继续训练。(flutter web 和flutter端侧用的依赖库不一样)。

官方示例    https://www.tensorflow.org/js/demos?hl=zh-cn

模型转换

        可以通过tfjs-converter进行模型转换模型转换  |  TensorFlow.js.

3.Tensorflow Lite

TensorFlow Lite 是一组工具,可帮助开发者在移动设备、嵌入式设备和 loT 设备上运行模型,以便实现设备端机器学习。

主要特性

  • 通过解决以下 5 项约束条件,针对设备端机器学习进行了优化:延时(数据无需往返服务器)、隐私(没有任何个人数据离开设备)、连接性(无需连接互联网)、大小(缩减了模型和二进制文件的大小)和功耗(高效推断,且无需网络连接)。
  • 支持多种平台,涵盖 Android 和 iOS 设备、嵌入式 Linux 和微控制器。
  • 支持多种语言,包括 Java、Swift、Objective-C、C++ 和 Python。
  • 高性能,支持硬件加速和模型优化。
  • 提供多种平台上的常见机器学习任务的端到端示例,例如图像分类、对象检测、姿势估计、问题回答、文本分类等。

能够在端侧做很多功能

姿态识别
更多demo

  模型转换

import tensorflow as tf# Convert the model
converter = tf.lite.TFLiteConverter.from_saved_model('saved_model/my_model') # path to the SavedModel directory
tflite_model = converter.convert()# Save the model.
with open('newAnalyzeDailyOrder.tflite', 'wb') as f:f.write(tflite_model)

对比

方式

应用场景

成本

隐私性

注意项

tensorflow lite

tensorflow js

识别车辆、人物美颜等图像处理等

用设备性能相对较低

较高

设备性能

tensorflow serving

个性化推荐、批量数据处理

计算成本、流量成本

较低

网络延迟、大流量等

        在具体的项目中、不一定是单独使用的。比如在58二手车估车价项目中,先进行汽车的识别、再去上传服务器。组合使用效果可能会更好。

结语

      我一开始学习机器学习 大家都是介绍其中的部分 比如就介绍了怎么建模,具体技术细节,没有说从前端、或是其他角度说介绍这件事。在我学习的前期有一种盲人摸象的感觉,只知道局部不知整体,希望我写的文章对你有帮助。 

参考文档

docker安装&tensorflow serving使用

tensorflow 官网 部署模型

平台和环境  |  TensorFlow.js

tensorflow.js有哪些局限?-CDA数据分析师官网

在浏览器中使用TensorFlow.js-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2023 - 探索】博0到博1,游戏新地图的探索日志

【2023 - 探索】博0到博1,游戏新地图的探索日志 写在最前面CSDN探索日志2023的探险 探索日志年终回顾探索 冒险回顾实习6月开始跟着老师做科研年中的一些其他事情9月开始上课开学后11月,读者互动 新年展望新年祝福 写在最前面 2023,我解锁了新…

C语言——结构体类型(二)【结构体内存对齐,结构体数组】

📝前言: 上一讲结构体类型(一)中,我们讲述了有关结构体定义,创建,初始化和引用的内容,这一讲,我们进一步学习结构体的相关知识: 1,结构体内存对齐…

腾讯云2024年优惠券领取入口汇总

腾讯云是国内知名的云计算服务提供商,提供了包括云服务器、云数据库、云存储、人工智能等全方位的云服务。为了吸引更多的用户,腾讯云经常会推出各种优惠券,让用户在购买云服务时能够享受到更多的优惠,下面给大家整理汇总最新腾讯…

独享静态代理IP在海外市场调研中的独特优势

独享静态代理IP在海外市场调研中扮演着至关重要的角色,提供了一系列无可比拟的优势。独享静态代理IP的稳定性和可靠性对于长期的市场调研至关重要,它保证了连接的持续性和数据的准确性。通过这些方面的综合优势,独享静态代理IP成为海外市场调…

【华为OD机试真题2023CD卷 JAVAJS】矩阵匹配

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 矩阵匹配 知识点二分查找DFS搜索 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 从一个N*M(N<=M)的矩阵中选出N个数,任意两个数字不能在同一行或同一列,求选出来的N个数中第K大的数字的最小值是多少。…

每日一看大模型新闻(2023.11.20)

1.产品发布 1.1长虹&#xff1a;首个基于大模型的智慧家电AI平台 发布日期&#xff1a;2023.11.20 全球首个基于大模型智慧家电AI平台长虹云帆震撼发布&#xff01; 主要内容&#xff1a;长虹智慧AI平台发布会上&#xff0c;发布了全球首个基于大模型的智慧家电AI平台——长…

靜態住宅IP代理詳解(ISP代理)

IP地址如同我們的網路身份證&#xff0c;是我們在互聯網世界中的標識。而在這個廣闊的網路世界中&#xff0c;有一種特殊的IP地址——靜態住宅IP&#xff0c;它就像我們的網路“定居地”。 靜態住宅IP是什麼&#xff1f; 靜態住宅IP&#xff0c;顧名思義&#xff0c;是一種固定…

使用Rider C# Dll工程和Unity工程互相调用、断点方法

总体流程 创建C# Dll工程&#xff0c;生成C#工程Dll 创建Unity工程 Unity调用C#工程的代码 C#工程调用Unity工程的代码 断点方法 创建C# Dll工程&#xff0c;生成C#工程Dll 创建工程 选这个&#xff0c;注意UnityEngineDll这个选项&#xff0c;要选你目标unity版本的Dll…

R语言生物群落(生态)数据统计分析与绘图教程

详情点击链接&#xff1a;R语言生物群落&#xff08;生态&#xff09;数据统计分析与绘图教程 前沿 R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂&#xff0c;涉及众多统计分析方法。 一&#xff1a;R和Rstudio及入门和作…

【数据结构】7大排序最详细

0.前言 接下来进入排序&#xff0c;我们知道在c语言阶段可能就学习过了像冒泡排序&#xff0c;选择排序这种比较简单的排序&#xff0c;那么接下来我们就会学习到更加高级的排序算法。但高级代表着难度的提升&#xff0c;但不用担心&#xff0c;博主会细细来谈&#xff0c;慢慢…

202312 青少年软件编程(C/C++)等级考试试卷(四级)电子学会真题

2023年12月 青少年软件编程&#xff08;C/C&#xff09;等级考试试卷&#xff08;四级&#xff09;电子学会真题 1.移动路线 题目描述 桌子上有一个m行n列的方格矩阵&#xff0c;将每个方格用坐标表示&#xff0c;行坐标从下到上依次递增&#xff0c;列坐标从左至右依次递增…

为什么要做FP独立站?FP独立站有哪些优势?

近年来&#xff0c;跨境电商的商家们面临越来越大的平台政策压力&#xff0c;商家们纷纷把眼光聚焦到独立站上&#xff0c;眼下独立站已经成为出海卖家的标配。 特别是想做FP商品的卖家&#xff0c;相对于亚马逊平台&#xff0c;独立站才是你们的最终出路... 那么&#xff0c;问…

go-zero 如何在任意地方获取yaml中的值

1、config配置文件中新增全局变量 package configimport "github.com/zeromicro/go-zero/rest"type Config struct {rest.RestConfDB struct {DataSource string}Redis struct {Addr stringPassWord stringUserName string}Auth struct {AccessSecret stringAcc…

ROS2学习笔记一:安装及测试

目录 前言 1 ROS2安装与卸载 1.1 安装虚拟机 1.2 ROS2 humble安装 2 ROS2测试 2.1 topic测试 2.2 小海龟测试 2.3 RQT可视化 2.4 占用空间 前言 ROS2的前身是ROS&#xff0c;ROS即机器人操作系统&#xff08;Robot Operating System&#xff09;,ROS为了“提高机器人…

[有固件程序]车载液晶驱动板(RTD2660H)Fondar下载/烧录器工具v3使用说明

液晶屏幕驱动烧录器 FONDAR2IIC使用说明 介绍 RTD2660液晶屏幕FONDAR烧录器&#xff0c;可烧写液晶驱动板的固件程序&#xff0c;简单易上手&#xff0c;适合开发和个人DIY爱好者&#xff0c;更换不同屏幕烧写不同程序&#xff0c;提供固件仅供测试。 软件介绍 请在Windows 10…

Delphi 11.3配置android环境

电脑安装dephi11.3的时候&#xff0c;勾选android sdk&#xff0c;但是软件安装好以后&#xff0c;还有问题 在Delphi—tool —options 里边&#xff0c;Deployment下SDKManager 中&#xff0c;看到SDk里边的感叹号&#xff0c;说明android sdk没有安装好 解决方法有2种 第一种…

一键提取视频文字或者音频

随着科技的进步&#xff0c;视频转文字技术已经变得越来越成熟&#xff0c;这种技术能够将视频中的语音转化为文字&#xff0c;为人们提供了极大的便利。水印云作为一款备受用户喜爱的在线视频转文字工具&#xff0c;凭借其高效、准确、易用的特点&#xff0c;在市场上占据了一…

21款奔驰GLS450升级23P驾驶辅助 半自动无人驾驶功能

辅助驾驶越来越多的被大家所青睐&#xff01;为了提升驾驶安全性和舒适便捷性奔驰改装原厂半自动驾驶23P辅助系统&#xff0c;星骏汇小许Xjh15863 23P智能辅助驾驶系统还是很有必要的&#xff0c;因为在跑高速的时候可以使用23P智能驾驶的自动保持车速&#xff0c;保持车距&…

【算法练习】leetcode算法题合集之回溯篇

组合问题 LeetCode39: 组合总和 LeetCode39. 组合总和 目标和&#xff0c;除了累加所有的数外还可以用目标值减去所有的数。 添加第i个元素后&#xff0c;可以继续添加第i个元素。可以添加第i个元素&#xff0c;也可以添加索引为candidates.length-1的元素 这类回溯的问题可以…

CHS_01.1.3.1+操作系统的运行机制

CHS_01.1.3.1操作系统的运行机制 操作系统的运行机制 也就是说 操作系统在计算机上是怎么运行的这样一个问题 操作系统的运行机制 也就是说 操作系统在计算机上是怎么运行的这样一个问题 那这个小节中会涉及到这样的一些概念 我们会学习到两种类型的指令 然后两种处理机状态和两…