【tensorflowflutter】自己写个机器学习模型用在项目上?

news2024/11/20 11:51:27

背景

        拍摄APP项目上线有一阵了,每天的拍摄数据呈现波动上升状态、业务方需要对数据进行加工,如果能有对未来的数据量的预测就好了 。

目标 

      在端侧展示拍摄数据可视化趋势图等、并能推断数据(选择预测日期) 简单实现个demo

gif背景有点问题

先写总结 

   现在来看、出来的东西很简单,但是整个流程时串通起来了。至于什么是tensorflow lite 初识TensorFlow Lite -CSDN博客

    总体流程图是这样的 从左侧的数据来源开始、到tensorflow 模型训练 到云上、动态下发、再到预测数据。生产数据的 再次收集数据运行的全流程正循环。 模型训练在本篇下方 其他后续写

一.数据处理

    数据来源

     目前只有日志数据 以单个数据为维度的: 2023年x月x日 张某 所属部门 拍摄时间 等数据

   数据预处理 

    通过pyhton 统计当日共拍摄多少套、都属于哪个部门

   数据清洗

    去除前三天刚上线数据(不准)、和当日的数据(未统计完全)等特殊数据

   数据分析、抽取

    根据数据判断  不光跟当日部门数、时间、还有星期有关 比如 周五周六周天相对较高  将星期也为参数。

  输出关系图

sns.pairplot(train_dataset[["拍摄数量","事业部数量","weekday","index"]], diag_kind="kde")

        拆分训练数据集和测试数据集

   拆除80%的数据进行训练、20%进行测试

train_dataset = dataset.sample(frac=0.8,random_state=0)
test_dataset = dataset.drop(train_dataset.index)

从标签中分离特征

          把预测值分离出来

        train_labels = train_dataset.pop("拍摄数量")
        test_labels = test_dataset.pop("拍摄数量")

 数据规范化

使用不同的尺度和范围对特征归一化是好的实践。尽管模型可能 在没有特征归一化的情况下收敛,它会使得模型训练更加复杂,并会造成生成的模型依赖输入所使用的单位选择。

就是将数据统一差不多的大小  

def norm(x):
  return (x - train_stats['mean']) / train_stats['std']
normed_train_data = norm(train_dataset)
normed_test_data = norm(test_dataset)

结果类似于

        输入 :部门数 35  星期  3 日期 202

        输出 :1.98  0.0 1.768

       但是要注意 之后预测数据时 也要统一化      

二.构建模型

   构建

    我们将会使用一个“顺序”模型,其中包含两个紧密相连的隐藏层,以及返回单个、连续值得输出层。

def build_model():
  model = keras.Sequential([
    layers.Dense(64, activation='relu', input_shape=[len(train_dataset.keys())]),
    layers.Dense(64, activation='relu'),
    layers.Dense(1)
  ])

  optimizer = tf.keras.optimizers.RMSprop(0.001)

  model.compile(loss='mse',
                optimizer=optimizer,
                metrics=['mae', 'mse'])
  return model

        训练 

# 通过为每个完成的时期打印一个点来显示训练进度
class PrintDot(keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs):
    if epoch % 100 == 0: print('')
    print('.', end='')

EPOCHS = 1000

history = model.fit(
  normed_train_data, train_labels,
  epochs=EPOCHS, validation_split = 0.2, verbose=0,
  callbacks=[PrintDot()])

预测值对比

        最后进行预测值对比

error = test_predictions - test_labels
plt.hist(error, bins = 25)
plt.xlabel("Prediction Error [MPG]")
_ = plt.ylabel("Count")

第一篇完

        tensorflow模型构建到此结束  想看详细教程  官网链接icon-default.png?t=N7T8https://www.tensorflow.org/tutorials/keras/regression

后续写转tensorflow lite/部署方案、动态下发、端侧推断部分 

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

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

相关文章

Keil5----生成hex文件和bin文件

Keil5编译环境搭建----教程目录 keil5----生成hex文件 具体步骤如下: 步骤1: 点击 魔法棒 “Options for Target” 。步骤2: 单击 Output。步骤3: 选择输出生成文件的路径。步骤4: 自定义生成的hex文件名。步骤5&am…

SpringBoot+Vue轻松实现考试管理系统

简介 本系统基于 Spring Boot 搭建的方便易用、高颜值的教学管理平台,提供多租户、权限管理、考试、练习、在线学习等功能。主要功能为在线考试、练习、刷题,在线学习。课程内容支持图文、视频,考试类型支持考试、练习、问卷。 源码下载 网…

算法专题六:模拟

一.替换所有的问号 替换所有的问号 1.思路一 class Solution { public:string modifyString(string s) {for(int i0;i<s.size();i){if(s[i] ?){for(char j a ; j<z ; j){//1.注意数组越界if((i0 || s[i-1] ! j) && (is.size()-1 || s[i1] ! j)){s[i] j;brea…

为什么说上了金蝶、用友系统后,下一步是部署BI?

经常有些不熟悉BI工具的用户问我&#xff1a;金蝶、用友系统和BI工具与什么区别&#xff0c;为什么说上了金蝶、用友系统后&#xff0c;下一步就是部署BI&#xff1f;这两个系统工具的功能不重叠吗&#xff1f; 首先&#xff0c;要了解金蝶、用友系统和BI工具的各自作用。 金…

第10课 利用windows API捕获桌面图像并通过FFmpeg分享

在上一章&#xff0c;我们已经实现了一对一音视频对话功能。在实际应用中&#xff0c;我们常需要把自己的电脑桌面分享给他人以实现桌面共享功能&#xff0c;这种功能在视频会议、在线教学等场景中很常见&#xff0c;这种功能如何实现呢&#xff1f;这节课我们就来解决这个问题…

我的小学时代——一段充满乐趣与探索的旅程

我的小学时代——一段充满乐趣与探索的旅程 在我深深的回忆中&#xff0c;小学时代是一段无比珍贵且充满活力与探索的时光&#xff0c;那是我在梓潼路小学度过的五载黄金岁月&#xff0c;从1979年开始&#xff0c;我迈进了那扇标志着人生学习之旅起点的大门。 梓潼路小学作为一…

新一代爬取JavaScript渲染页面的利器-playwright(二)

接上文&#xff1a;新一代爬取JavaScript渲染页面的利器-playwright&#xff08;一&#xff09;   上文我们主要讲了Playwright的特点、安装、基本使用、代码生成的使用以及模拟移动端浏览&#xff0c;这篇我们主要讲下Playwright的选择器以及常见的操作方法。 6.选择器 我们…

使用PowerJob做任务调度模块

最近项目中使用了PowerJob做任务调度模块&#xff0c;感觉这个框架真香&#xff0c;今天我们就来深入了解一下新一代的定时任务框架——PowerJob&#xff01; 简介 PowerJob是基于java开发的企业级的分布式任务调度平台&#xff0c;与xxl-job一样&#xff0c;基于web页面实现…

宽压输入1.5KV隔离直流高压输出电源模块

GRC系列低成本小体积宽电压输入隔离高压模块电源&#xff0c;是一款业界的隔离稳压型DC-DC高电压转换器&#xff0c;可在宽范围波动的不稳定电压输入环境中运行&#xff0c;通过模块的内部调整电路可以生成隔离稳压的直流高电压输出。产品外壳采用铝壳喷塑防腐设计&#xff0c;…

RTU数据采集终端

在现代工业控制系统中&#xff0c;数据采集是一个至关重要的步骤。RTU(远程终端单元)作为一种常用的数据采集终端设备&#xff0c;不仅可以实现数据的采集和传输&#xff0c;还可以实现现场设备的远程监控和控制。 一、RTU数据采集终端的工作原理 RTU数据采集终端是一种将现场…

springboot社区养老服务系统设计与实现

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1 研究背景 当…

Spring框架-入门(IOC,DI)

文章目录 Spring框架简介创建Spring项目理解IOC和DI&#xff1a;IOC控制反转示例pom.xmlPerson.javaapplicationContext.xmlPersonTest.java DI依赖注入传统的方式GreetingService.javaGreetingServiceImpl.javaGreetingTest.java 使用DI依赖注入GreetingService.javaGreetingS…

关于系统设计的一些思考

0.前言 当我们站在系统设计的起点&#xff0c;面对一个新的需求&#xff0c;我们该如何开始呢&#xff1f;这是许多处于系统分析与设计领域的新手常常思考的问题。有些人可能会误以为&#xff0c;只要掌握了诸如面向对象、统一建模语言、设计模式、微服务、Serverless、Servic…

电脑视频剪辑软件哪个好用

电脑视频剪辑软件是当今创作者不可或缺的工具之一&#xff0c;它们能够帮助我们在电脑上对视频进行编辑、剪辑、特效添加等操作&#xff0c;使我们的作品更加专业、精美。然而&#xff0c;在众多的视频剪辑软件中&#xff0c;该选择哪一个呢&#xff1f;本文将为你推荐2款非常好…

全网最细,接口+接口自动化测试面试题汇总(附回答)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、我们测试的接口…

vite 如何设置 pwa,让网页类似 app 那样运行,使用插件 vite-plugin-pwa

vite 如何设置 pwa&#xff0c;让网页类似 app 那样运行&#xff0c;使用插件 vite-plugin-pwa 一、概述 情况还是那么个情况&#xff0c;还是原来的项目 vue2 改为 vitetsvue3 遇到的问题&#xff0c;今天这个问题是如何 在 Vite 环境下设置 PWA。 PWA 就是网页应用可以像 a…

驱动芯片,预计未来几年将达到605亿美元的规模

驱动芯片是指驱动显示屏幕幕的芯片&#xff0c;其应用广泛&#xff0c;主要用于电脑、手机、电视、平板电脑和汽车等设备。全球驱动芯片市场分析&#xff1a; 据市场研究预测&#xff0c;未来几年内&#xff0c;全球驱动芯片市场将保持稳定增长&#xff0c;并达到605亿美元的规…

【萤火虫系列教程】2/5-Adobe Firefly 文字​生成​图像

文字​生成​图像 登录账号后&#xff0c;在主页点击文字生成图像的【生成】按钮&#xff0c;进入到文字生成图像 查看图像 在文字生成图像页面&#xff0c;可以看到别人生成的图像。 点击某个图像&#xff0c;就可以进入图像详情&#xff0c;可以看到文字描述。 生成图像 我…

电子化学品,预计2025年会增长到4302亿美元

电子化学品市场是一个庞大的细分市场&#xff0c;它包括了广泛的化学品种类&#xff0c;如涂料、塑料、精细化学品、农药和医药等。这个市场的发展相当迅速&#xff0c;下面我们将从全球市场和中国市场两个方面对其发展趋势进行分析。全球市场分析&#xff1a; 从全球市场的角度…

谷达冠楠:抖店创业初期需要注意哪些

随着互联网的发展&#xff0c;越来越多的人选择通过开设网店来实现创业梦想。而在众多的电商平台中&#xff0c;抖音小店因其独特的社交属性和巨大的流量优势&#xff0c;成为了许多人的首选。然而&#xff0c;抖店创业并非一帆风顺&#xff0c;初期需要注意的问题也不少。以下…