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

背景

        拍摄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/部署方案、动态下发、端侧推断部分 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp自定义顶部导航并解决打包成apk后getMenuButtonBoundingClientRect方法失效问题

需求:要在app上的顶部导航提示哪里添加一些东西进去,用uniapp自带的肯定不行啊,所以自定义了所有的页面的顶部导航,之后自定义后用手机调试发现 uni.getMenuButtonBoundingClientRect()这个方法的top获取不到....网上找了很多种方…

服务注册中心

服务注册中心 注册中心与CAP理论介绍 1.注册中心 服务注册中心是微服务架构中的一个关键组件,它的主要作用是管理服务实例的注册、维护和发现。 是一个中心化的组件来分散的微服务实例的位置和状态。 注册中心有三种角色构成: 服务提供者&#xff1a…

每周一算法:倍增法求最近公共祖先(LCA)

最近公共祖先 最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 题目链接 祖孙询问 题目描述 给定一棵包含 n n n 个节点的有根无向树,节点…

知虾shopee数据:为卖家提供了丰富的数据分析工具

使用Shopee的卖家都知道,这个平台为卖家提供了丰富的数据分析工具,帮助他们更好地理解店铺运营状况和市场趋势。这些数据分析工具不仅能够提供数据总览,还包括买家分析、商品排名、分类排名、销售辅导、流量分析、销售结构、行销活动、聊天响…

SpringCloud Alibaba之Nacos配置中心配置详解

目录 Nacos配置中心数据模型Nacos配置文件加载Nacos配置 Nacos配置中心数据模型 Nacos 数据模型 Key 由三元组唯一确定,三元组分别是Namespace、Group、DataId,Namespace默认是公共命名空间(public),分组默认是 DEFAUL…

聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化

聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化 目录 聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化(完整源码和数据) 2.多特征输入&…

HarmonyOS 应用开发学习笔记 状态管理概述

移动端开发,最重要的一点就是数据的处理,并且正确的显示渲染UI。 变量在页面和组件、组件和组件之间有时候并不能实时共享,而有时候,又不需要太多的作用域(节省资源),作用就需要根据不同场景&am…

MQ 发消息的4种姿势

微服务开发中经常会使用消息队列进行跨服务通信。在一个典型场景中,服务A执行一个业务逻辑,需要保存数据库,然后通知服务B执行相应的业务逻辑。在这种场景下,我们需要考虑如何发送消息。 1. 基础版 首先,我们可能会考虑将数据库操作和消息发送放在同一个事务中,以下是伪…

深度学习笔记

激活函数 激活函数可以让神经网引入非线性性质,去除线性相关特征映射,是网络捕获数据中的不同特征;relu max(0,x)输出为0到正无穷sigmod输出为0-1 形状为srelu 输出为-1-1 以0为中心,形状为s …

【STM32】STM32学习笔记-ADC模数转换器(21)

00. 目录 文章目录 00. 目录01. ADC简介02. ADC主要特征03. 逐次逼近型ADC04. ADC功能描述05. ADC基本结构06. 输入通道07. 转换模式08. 触发控制09. 数据对齐10. 转换时间11. 校准12. 硬件电路13. 附录 01. ADC简介 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F1…

再次拓宽信创生态版图,思迈特与统信软件完成产品兼容适配认证

近日,思迈特软件与统信软件科技有限公司(简称“统信软件”)完成产品兼容性适配互认证,加速国产信创生态化建设进程。 本次测试由商业智能与数据分析软件(简称:Smartbi Insight V11)产品与统信服…

AMEYA360分享:太阳诱电导电性高分子混合铝电解电容器

随着汽车电动化和电子控制化的进展,车载计算机和电气部件也在逐渐向大功率化的方向发展。而构成这些车载设备电源电路的电子元器件也必须随之进行技术革新。 太阳诱电集团携手全资子公司ELNA,开发并供应新型电容器“导电性高分子混合铝电解电容器”&…

农业银行RPA实践 3大典型案例分析

零接触开放金融服务在疫情之下被越来越多的银行和客户所认同,引起了更广泛的持续关注,各家银行纷纷开展产品服务创新,加速渠道迁移,同时通过远程办公、构建金融生态等方式积极推进零接触开放金融体系建设。 随着商业银行科技力量的…

JSP页面访问JDBC数据库的六个步骤

【例】创建exgample11_1.jsp页面&#xff0c;并在该页面中使用纯Java数据库驱动程序连接数据库test&#xff0c;并查询数据表goods中的数据。 <% page language"java" contentType"text/html;charsetUTF-8" pageEncoding"UTF-8"%> <% …

Flink窗口与WaterMark

本文目录 窗口的生命周期Window Assigners窗口函数&#xff08;Window Functions&#xff09;TriggersEvictorsAllowed Lateness 窗口 窗口&#xff08;Window&#xff09;是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中&#xff0c;再对每个“桶”加以处理。…

基于低代码的指尖遐想_3

低代码需要回答三个问题&#xff1a; 1、是否降低了门槛&#xff1f; 2、是否提高了效能&#xff1f; 3、使用者用户画像&#xff1f; 广义低代码&#xff0c;从项目全局维度&#xff08;项目启动、需求调研、方案设计、配置开发、系统验收、系统运营&#xff09;进行了解答。…

使用Termux+Hexo搭建个人博客结合内网穿透工具轻松实现公网访问内网博客

文章目录 前言 1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。 下面介绍在Termux中安装个人hexo博客并结合…

【算法每日一练]-动态规划 (保姆级教程 篇15)#动物 #赶deadline #page #构造字符串

目录 今日知识点&#xff1a; 01背包的路径输出 计算位和的数位dp 不用管字符串&#xff0c;只需要看好约束dp转移的变量 动物 赶deadline page 构造字符串 动物 有某类动物&#xff0c;可以在农场待n天&#xff0c;每天最多增加一只动物&#xff0c;第i天到来的动物每…

Android开发,jni,ndk开发,调用fmod音频库,音效引擎库

文章目录 Android开发&#xff0c;jni&#xff0c;ndk开发&#xff0c;调用fmod音频库&#xff0c;音效引擎库1.fmod介绍2.cmake3.C代码实践 Android开发&#xff0c;jni&#xff0c;ndk开发&#xff0c;调用fmod音频库&#xff0c;音效引擎库 1.fmod介绍 https://www.fmod.c…

前端常用的几种算法的特征、复杂度、分类及用法示例演示

算法&#xff08;Algorithm&#xff09;可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤&#xff0c;或者看成按照要求设计好的有限的确切的计算序列&#xff0c;并且这样的步骤和序列可以解决一类问题。算法代表着用系统的方法描述解决问题的策略机制&#xff0c…