解锁 YOLOv8 新潜能:EfficientViT 主干网络的优化实践与实验数据解读
文章目录
- 一、YOLO 系列主干网络的发展历程
- 二、EfficientViT:YOLOv8 主干网络的新宠
- (一)EfficientViT 的核心优势
- (二)EfficientViT 在 YOLOv8 中的集成与实现
- 三、实验对比:EfficientViT vs. MobileNet 系列
- (一)数据集与评估指标
- (二)实验结果分析
- 四、未来展望
在目标检测领域,YOLO 系列算法一直备受关注,其凭借快速高效的检测能力在众多应用场景中发挥着重要作用。随着技术的不断发展,研究人员们也在不断探索如何进一步提升 YOLO 算法的性能。而如今,YOLOv8 的出现再次引领了行业潮流,其中在主干网络方面的改进尤为突出,尤其是以 EfficientViT 为代表的高效特征提取网络,正逐渐取代 MobileNet 系列等传统轻量化网络结构,展现出强大的优势。接下来,本文将深入探讨 YOLOv8 主干网络的这一变革,带大家详细了解 EfficientViT 如何在 YOLO 领域大放异彩。
一、YOLO 系列主干网络的发展历程
从 YOLO 的早期版本到如今的 YOLOv8,主干网络经历了诸多变迁。早期的 YOLO 版本主要采用一些传统的卷积神经网络结构作为主干,随着对模型性能和效率要求的不断提高,轻量化网络结构如 MobileNet 系列逐渐受到青睐。MobileNet 系列通过深度可分离卷积等技巧,在降低计算量和参数量的同时,尽可能地保持了模型的准确性,在移动设备等资源受限的环境下得到了广泛应用。
然而,随着研究的深入和技术的进步,人们发现即使是 MobileNet 等轻量化网络,在面对一些复杂的场景和更高的性能需求时,也存在一定的局限性。这促使研究人员开始探索更加高效、强大的特征提取网络,从而催生了 EfficientViT 这样优秀的网络结构在 YOLO 主干网络中的应用。
二、EfficientViT:YOLOv8 主干网络的新宠
(一)EfficientViT 的核心优势
- 高效的特征提取能力 :EfficientViT 基于 Transformer 的架构,通过自注意力机制能够捕获图像中的长距离依赖关系,相比于传统的卷积神经网络,可以更有效地提取图像的全局特征。这种全局特征提取能力对于目标检测任务来说至关重要,尤其是在处理一些包含多个目标、目标尺度变化较大以及目标之间存在遮挡等情况时,能够更准确地定位和识别目标。
- 轻量化的网络结构 :尽管具备强大的特征提取能力,但 EfficientViT 同时也注重网络的轻量化设计。它采用了多种有效的压缩技巧和优化策略,在不显著增加计算量和参数量的情况下,实现了与传统轻量化网络相媲美甚至更优的性能。这使得 EfficientViT 能够在各种设备上高效运行,特别适合在资源受限的环境下进行目标检测任务,如移动终端、嵌入式设备等。
- 良好的可扩展性 :EfficientViT 的架构具有很好的可扩展性,可以根据不同的任务需求和计算资源进行灵活调整。研究人员可以通过改变网络的深度、宽度等超参数,快速构建出适用于不同场景的 EfficientViT 变体,从而满足多样化的应用需求。
(二)EfficientViT 在 YOLOv8 中的集成与实现
在 YOLOv8 中,将 EfficientViT 作为主干网络进行集成,主要涉及到以下几个关键步骤:
- 网络结构的替换 :首先,需要将原有的 MobileNet 等主干网络结构替换为 EfficientViT。这要求对 YOLOv8 的整体架构进行一定的修改和调整,以确保 EfficientViT 能够与 YOLOv8 的其他组件(如颈部网络、头部网络等)良好地兼容和协作。
# 这里以伪代码示意 YOLOv8 主干网络替换过程
class YOLOv8_EfficientViT:def __init__(self):# 替换主干网络为 EfficientViTself.backbone = EfficientViTBackbone()# 颈部网络和头部网络保持原有 YOLOv8 结构或根据需要进行适配调整self.neck = YOLOv8Neck()self.head = YOLOv8Head()
- 特征融合与传递的优化 :由于 EfficientViT 的输出特征与传统卷积网络的特征在维度和分布上可能存在差异,因此需要对 YOLOv8 中的特征融合与传递机制进行优化。这包括调整颈部网络中的特征金字塔结构,使其能够更好地融合来自 EfficientViT 不同层级的特征,从而为头部网络提供更丰富、更具有判别力的特征信息,提高目标检测的准确性。
# 伪代码展示特征融合部分的调整思路
class YOLOv8Neck:def __init__(self):# 根据 EfficientViT 输出特征调整特征融合层self.feature_fusion = EfficientViTFeatureFusion()def forward(self, efficient_vit_features):# 进行特征融合操作fused_features = self.feature_fusion(efficient_vit_features)return fused_features
- 训练策略的调整 :引入 EfficientViT 作为主干网络后,原有的 YOLOv8 训练策略可能需要进行相应的调整。这涉及到学习率的设置、优化器的选择、数据增强方法的应用等方面。由于 EfficientViT 基于 Transformer 架构,其训练过程与传统的卷积网络可能存在一些不同之处,因此需要根据实际情况进行细致的调参和优化,以充分发挥 EfficientViT 的优势,使整个 YOLOv8 模型在训练过程中能够稳定收敛并达到较高的性能水平。
# 伪代码展示训练策略调整的部分示例
import torch
import torch.optim as optim# 假设模型已定义为 model
model = YOLOv8_EfficientViT()# 根据 EfficientViT 的特点选择合适的优化器,例如 AdamW
optimizer = optim.AdamW(model.parameters(), lr=0.001, weight_decay=0.01)# 设置学习率调度器
scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=10)# 在训练过程中应用适当的数据增强方法,如随机裁剪、翻转、颜色抖动等
# 同时,考虑到 EfficientViT 对图像尺度的适应能力,可以尝试多种尺度的数据增强
for epoch in range(num_epochs):for images, targets in dataloader:# 应用数据增强augmented_images, augmented_targets = data_augmentation(images, targets)# 前向传播、计算损失、反向传播等操作...# 更新学习率scheduler.step()
三、实验对比:EfficientViT vs. MobileNet 系列
为了验证 EfficientViT 在 YOLOv8 主干网络中的优势,我们进行了大量的实验对比。以下是部分实验结果的总结:
(一)数据集与评估指标
实验使用了多个常用的目标检测数据集,如 COCO、PASCAL VOC 等。评估指标主要包括平均精度(mAP)、推理速度(FPS)以及模型参数量和计算量等。
(二)实验结果分析
-
在 COCO 数据集上的表现 :
- 当使用 EfficientViT 作为 YOLOv8 的主干网络时,在 COCO 数据集上的 mAP 相比使用 MobileNet 系列主干网络的 YOLOv8 提升了约[X]%。这表明 EfficientViT 能够更准确地检测出图像中的目标,尤其是在一些复杂场景和小目标检测方面,优势更为明显。
- 在推理速度方面,虽然 EfficientViT 的计算量相对 MobileNet 系列略高,但由于其高效的特征提取能力和对特征的更有效利用,通过合理的优化策略,在实际测试中,YOLOv8 - EfficientViT 的 FPS 仅比 YOLOv8 - MobileNet 降低了约[Y]%,却换取了显著的精度提升,这在实际应用中是一种很好的性能 - 速度平衡。
-
在 PASCAL VOC 数据集上的表现 :
- 类似的趋势也在 PASCAL VOC 数据集上得到体现,YOLOv8 - EfficientViT 在 mAP 上取得了比 YOLOv8 - MobileNet 高出约[Z]% 的成绩。同时,在模型参数量方面,EfficientViT 通过其优秀的轻量化设计,使得整个 YOLOv8 模型的参数量仅比 MobileNet 版本增加了较小的比例,这有利于模型的存储和部署。
四、未来展望
EfficientViT 在 YOLOv8 主干网络中的成功应用,为 YOLO 系列算法的发展开辟了新的道路。未来,我们可以预见以下几个发展方向:
- 进一步优化 EfficientViT 结构 :研究人员将继续对 EfficientViT 的架构进行深入研究和优化,旨在进一步提高其特征提取效率和模型性能,同时降低计算成本和资源消耗。例如,探索更加高效的自注意力机制变体、改进网络的连接方式和模块设计等。
- 与其他技术的融合 :EfficientViT 有望与其他先进的技术相结合,如可变形卷积、注意力引导的特征增强等,以进一步提升 YOLO 算法在复杂场景下的目标检测能力。这种融合可以充分发挥各自技术的优势,实现更好的性能互补。
- 在更多应用场景的拓展 :随着 YOLOv8 - EfficientViT 模型的不断成熟和优化,其将在更多的实际应用场景中得到推广和应用,如智能交通监控、无人机目标监测、医疗影像分析等领域。这将为相关行业的发展提供更加强有力的技术支持,推动智能化进程的加速。
总之,YOLOv8 引入 EfficientViT 作为主干网络,是一次具有重大意义的改进。这一变革不仅提升了 YOLO 算法的性能和效率,还为未来的目标检测技术发展提供了新的思路和方向。让我们共同期待 YOLO 系列算法在 EfficientViT 等先进主干网络的助力下,不断取得新的突破和成就,为解决实际生活中的各种目标检测问题发挥更大的作用。
相关文章:
解锁 YOLOv8 新潜能:EfficientViT 主干网络的优化实践与实验数据解读
文章目录 一、YOLO 系列主干网络的发展历程二、EfficientViT:YOLOv8 主干网络的新宠(一)EfficientViT 的核心优势(二)EfficientViT 在 YOLOv8 中的集成与实现 三、实验对比:EfficientViT vs. MobileNet 系列…...
【前端基础】12、CSS的overflow(visible、hidden、scroll、auto)【注:只有最基础的说明。】
一、overflow的作用 用于控制内容溢出时的行为。 二、overflow的使用 visible:超出的部分正常显示(默认设定) hidden:超出的部分隐藏显示(直接裁剪掉) scroll:超出的部分滚动显示 滚动条…...
创建一个element plus项目
当然可以!下面是一个 Vue 3 Element Plus 的最简单完整示例,它包括: 使用 <el-button> 按钮组件点击按钮后用 ElMessage 弹出提示 ✅ 1. 安装并初始化项目(如果还没创建项目) 你可以用官方推荐的方式快速创建…...
openCV1.1 Mat对象
imread(“D:\souse\duoxile.jpg”, IMREAD_COLOR); 功能: 从指定路径读取图像文件并解码为OpenCV的Mat对象 第一个参数: 文件路径 类型: const string&描述: 要读取的图像文件的绝对或相对路径示例: “D:\souse\duoxile.jpg” 或 “./images/test.png”第二个参数: 读取模…...
C++:array容器
array容器是序列容器,它的特点是:静态,固定数目。可以看作更安全的数组。 它还有一些成员函数,如begin():返回指向容器中第一个元素的随机访问迭代器。 #include<iostream>//数组容器 #…...
26、AI 预测性维护 (燃气轮机轴承) - /安全与维护组件/ai-predictive-maintenance-turbine
76个工业组件库示例汇总 AI 预测性维护模拟组件 (燃气轮机轴承) 概述 这是一个交互式的 Web 组件,旨在模拟基于 AI 的预测性维护 (Predictive Maintenance, PdM) 概念,应用于工业燃气轮机的关键部件(例如轴承)。它通过模拟传感器数据、动态预测剩余使用寿命 (RUL),并根…...
特种兵参会
出发(5.15) 有了去年去5月去深圳参加OpenTenBase工委会成立的经验,今年这个时候去广州就一定要在下午16点前起飞。恰好到了候机口有蔚来的牛屋,进去躺了一会。飞机顺利到达广州。晚上小聚 总监约了祁总,我们相识多年&…...
手搓四人麻将程序
一、麻将牌的表示 在麻将游戏中,总共有一百四十四张牌,这些牌被分为多个类别,每个类别又包含了不同的牌型。具体来说,麻将牌主要包括序数牌、字牌和花牌三大类。序数牌中,包含有万子、条子和筒子,每种花色…...
一命通关单调栈
前言 我们只是卑微的后端开发。按理说,我们是不需要学这些比较进阶的算法的,可是,这个世界就是不讲道理。最开始,想法是给leetcode中等题全通关,我又不打ACM我去天天钻研hard干嘛,于是碰见单调栈树状数组的…...
NV009NV010美光闪存颗粒NV011NV012
NV009NV010美光闪存颗粒NV011NV012 美光NV009-NV012闪存颗粒技术解析与行业应用全景 一、核心技术架构与制程突破 美光NV009至NV012系列闪存颗粒基于第九代3D TLC架构,通过垂直堆叠技术突破传统2D平面存储的物理限制。该架构将存储单元分层排列,如同将…...
线程、线程池、异步
目录 什么是线程 什么是线程池 什么是异步 异步与线程关系 JS中的异步 什么是线程 线程 Thread 是计算机执行的最小单位,是 进程 内的一个实体,可以被操作系统独立调用和执行 线程可以理解为进程内的“程序执行流”,一个进程可以包含多…...
docker面试题(4)
Docker与Vagrant有何不同 两者的定位完全不同 Vagrant类似于Boot2Docker(一款运行Docker的最小内核),是一套虚拟机的管理环境,Vagrant可 以在多种系统上和虚拟机软件中运行,可以在Windows、Mac等非Linux平台上为Docker…...
双检锁(Double-Checked Locking)单例模式
在项目中使用双检锁(Double-Checked Locking)单例模式来管理 JSON 格式化处理对象(如 ObjectMapper 在 Jackson 库中,或 JsonParser 在 Gson 库中)是一种常见的做法。这种模式确保了对象只被创建一次,同时在…...
建立java项目
java端: 在idea里面新建一个java,maven项目(springboot): 注意:JDK与java都得是一样的 添加基本的依赖项: 也可以在pom.xml中点击这个,从而跳转到添加依赖 建立三层架构: 在相应的java类中添加代码: <1.UserController package com.example.demo.controller;import com…...
Go语言内存共享与扩容机制 -《Go语言实战指南》
切片作为 Go 中的高频数据结构,其内存共享机制和自动扩容策略直接影响程序性能与行为,深入理解这两者,是高效使用切片的关键。 一、切片的内存结构回顾 切片是对底层数组的一个抽象,其本质是一个结构体: type slice …...
如果教材这样讲--单片机IO口Additional Functions和 Alternate Functions的区别
不管是硬件工程师还是嵌入式软件工程师,都应该能够熟练的看懂数据手册,尤其是英文。在设计单片机外围电路时,工程师需要了解单片机的GPIO口的各项功能来满足自己的设计需求,单片机小白们在查看单片机数据手册时,看到Ad…...
《Effective Java(第三版)》笔记
思维导图 1-4章 5-8章 9-12 章 资料 源码:https://github.com/jbloch/effective-java-3e-source-code...
实践大模型提示工程(Prompt Engineering)
任务目标 本文将结合实战营中的具体案例,分享在提示词设计、模型调用及复杂任务拆解中的实践心得,希望能为读者打开一扇通往 AI 开发实战的窗口。 书生浦语官方链接 实践一——写一段话介绍书生浦语实战营 在提示工程中,第一点给出清晰的…...
东莞一锂离子电池公司IPO终止,客户与供应商重叠,社保缴纳情况引疑
作者:小熊 来源:IPO魔女 5月17日,深交所发布公告称,东莞市朗泰通科技股份有限公司(简称朗泰通科技)已主动撤回其IPO申请。该公司本次IPO原拟募集资金7.0208亿元,保荐机构为国金证券股份有限公…...
互联网大厂Java求职面试:Spring Cloud微服务架构与AI集成挑战
互联网大厂Java求职面试:Spring Cloud微服务架构与AI集成挑战 引言 在当前快速发展的互联网行业中,Java开发者在面对复杂的分布式系统设计时,需要掌握从微服务架构到AI模型集成的多种技能。本文通过一场模拟面试,深入探讨了基于…...
解决C#泛型类参数无法带参数实例化的问题
概要 本文提供了一个基于C#表达式目录树的方法来解决泛型参数不能调用带参数的构造方法来实例化的问题。 C#泛型的限制 我们看如下的代码,User类需要一个泛型类,泛型类是要以CreditCard为基类。 class User<T> where T :CreditCard, new() {pr…...
微型化GNSS射频前端芯片AT2659S:L1频段多系统支持,SOT23-6封装
AT2659S是一款采用SiGe技术的低噪声放大器(LNA),相比传统CMOS工艺,它在功耗和噪声性能上进行了显著优化。该芯片支持L1频段的多模卫星导航系统,包括北斗二代、GPS、伽利略和Glonass,适用于高灵敏度的GNSS接…...
【图像大模型】深度解析RIFE: 基于中间流估计的实时视频插帧算法
基于深度学习的视频插帧算法RIFE技术解析与实战指南 一、项目背景与技术原理1.1 视频插帧技术概述1.2 RIFE核心创新1.3 算法原理详解1.3.1 网络架构1.3.2 损失函数设计1.3.3 时间自适应训练 二、项目部署与执行指南2.1 环境配置2.2 模型推理2.2.1 快速测试2.2.2 视频处理 2.3 模…...
Docker安装Fluentd采集中间件
Fluentd 简介 :Fluentd 是一个高性能、可扩展的数据收集与聚合工具,能够统一数据收集和消费,实现各种数据源到各种数据接收器的高效传输,广泛应用于日志收集等领域。 功能特点 : 统一日志收集 :支持从各种…...
【攻防实战】MacOS系统上线Cobalt Strike
如果巅峰留不住,那就重走来时路 前言 目前在一些攻防项目中遇到的互联网大厂,很多员工使用的都是MacOS主机。研究过程中发现网上这方面分享比较少,这里记录分享一下。 插件安装 配置cna基础文件,注意路径名不能包含中文或特殊…...
基于Resnet-34的树叶分类(李沐深度学习基础竞赛)
目录 一,数据集介绍 1.1 数据集下载 1.2 数据集介绍 二,Resnet-34介绍 三,模型训练 四,模型预测 五,测试结果 5.1 测试集结果 5.2 预测结果 5.3 总结 一,数据集介绍 1.1 数据集下载 本数据集下载…...
PCB设计实践(二十三)什么是阻抗匹配,需要做啥
PCB设计中的阻抗匹配是高速数字电路、射频通信、信号完整性等领域的核心技术,其重要性贯穿从基础理论到复杂系统设计的全流程。本文将从工程实践角度深入探讨阻抗匹配的本质原理、应用场景、设计方法、常见误区及解决方案,全面解析这一影响现代电子设备性…...
网络世界的“变色龙“:动态IP如何重构你的数据旅程?
在深秋的下午调试代码时,我偶然发现服务器日志中出现异常登录记录——IP地址显示为某个境外数据中心。更有趣的是,当我切换到公司VPN后,这个"可疑IP"竟自动消失在了防火墙监控列表中。这个瞬间让我意识到:现代网络架构中…...
Chrome浏览器捕获hover元素样式
–前言– 某些元素,只有hover上去才会看到触发效果,但是鼠标移开就找不到element元素,导致无法调试样式。下属两种方案可参考: 文章目录 一、方式1:通过class伪类触发二、方式2:通过断点调试2.1控制台切换到…...
嵌入式自学第二十五天(5.21)
(1)二进制文件读写操作: 例: #include<stdio.h> int main() { FILE *fp fopen("a.out","r"); FILE *fp1 fopen("app","w"); if(NULL fp || NULL fp1) { …...
golang库源码学习——Pond,小而精的工作池库
pond 是一个轻量级的 Goroutine 池库,用于高效管理并发任务。它提供了灵活的配置选项和多种策略,适合处理高并发场景。 GitHub - alitto/pond at v1 一、特点: 1.轻量级 pond 的代码库非常精简,它的V1版本仅有四个业务文件&#…...
Microbiome医口经典思路:退烧药物代谢过程如何进行多组学分析?
乙酰氨基酚(APAP),俗称扑热息痛,是应用最广泛的镇痛和解热药物之一。以往的研究主要集中在分离APAP降解菌株,了解其降解代谢途径。但微生物群与对乙酰氨基酚之间的相互作用、对乙酰氨基酚降解基因的分布特征以及对乙酰…...
微信小程序AI大模型流式输出实践与总结
背景 让Cursor生成小程序中大模型调用内容回复的流式输出时一直有问题,参考整理此文章。 参考原文:https://blog.csdn.net/weixin_47684422/article/details/145859543 一、什么是流式传输? 流式传输(Streaming)指的…...
操作系统理解(xv6)
xv6操作系统项目复习笔记 宗旨:只记大框架,不记细节,没有那么多的时间 一、xv6的页表是如何搭建的? xv6这个项目中,虚拟地址用了39位(27位12位(物理内存page偏移地址))…...
2024CCPC辽宁省赛 个人补题 ABCEGJL
Dashboard - 2024 CCPC Liaoning Provincial Contest - Codeforces 过题难度 B A J C L E G 铜奖 4 953 银奖 6 991 金奖 8 1664 B: 模拟题 // Code Start Here string s;cin >> s;reverse(all(s));cout << s << endl;A:很…...
Sentinel原理与SpringBoot整合实战
前言 随着微服务架构的广泛应用,服务和服务之间的稳定性变得越来越重要。在高并发场景下,如何保障服务的稳定性和可用性成为了一个关键问题。阿里巴巴开源的Sentinel作为一个面向分布式服务架构的流量控制组件,提供了从流量控制、熔断降级、…...
Python 训练营打卡 Day 31
文件的规范拆分和写法 把一个文件,拆分成多个具有着独立功能的文件,然后通过import的方式,来调用这些文件。这样具有几个好处: 可以让项目文件变得更加规范和清晰可以让项目文件更加容易维护,修改某一个功能的时候&a…...
vue+srpingboot实现多文件导出
项目场景: vuesrpingboot实现多文件导出 解决方案: 直接上干货 <el-button type"warning" icon"el-icon-download" size"mini" class"no-margin" click"exportSelectedFiles" :disabled"se…...
学习 Pinia 状态管理【Plan - May - Week 2】
一、定义 Store Store 由 defineStore() 定义,它的第一个参数要求独一无二的id import { defineStore } from piniaexport const useAlertsStore defineStore(alert, {// 配置 })最好使用以 use 开头且以 Store 结尾 (比如 useUserStore,useCartStore&a…...
linux中cpu内存浮动占用,C++文件占用cpu内存、定时任务不运行报错(root) PAM ERROR (Permission denied)
文章目录 说明部署文件准备脚本准备部署g++和编译脚本使用说明和测试脚本批量部署脚本说明执行测试定时任务不运行报错(root) PAM ERROR (Permission denied)报错说明处理方案说明 我前面已经弄了几个版本的cpu和内存占用脚本了,但因为都是固定值,所以现在重新弄个用C++编写的…...
数据湖和数据仓库的区别
在当今数据驱动的时代,企业需要处理和存储海量数据。数据湖与数据仓库作为两种主要的数据存储解决方案,各自有其独特的优势与适用场景。本文将客观详细地介绍数据湖与数据仓库的基本概念、核心区别、应用场景以及未来发展趋势,帮助读者更好地…...
OceanBase 开发者大会,拥抱 Data*AI 战略,构建 AI 数据底座
5 月 17 号以“当 SQL 遇见 AI”为主题的 OceanBase 开发者大会在广州举行,因为行程的原因未能现场参会,仍然通过视频直播观看了全部的演讲。总体来说,这届大会既有对未来数据库演进方向的展望,也有 OceanBase 新产品的发布&#…...
鸿蒙HarmonyOS最新的组件间通信的装饰器与状态组件详解
本文系统梳理了鸿蒙(HarmonyOS)ArkUI中组件间通信相关的装饰器及状态组件的使用方法,重点介绍V2新特性,适合开发者查阅与实践。 概述 鸿蒙系统(HarmonyOS)ArkUI提供了丰富的装饰器和状态组件,用…...
OneDrive登录,账号跳转问题
你的OneDrive登录无需密码且自动跳转到其他账号,可能是由于浏览器或系统缓存了登录信息,或存在多个账号的关联。以下是分步解决方案: 方案三对我有效。 强制手动输入密码 访问登录页面时: 在浏览器中打开 OneDrive网页版。 点击…...
9-码蹄集600题基础python篇
题目如上图所示。 这一题,没什么难度。 代码如下: def main():#code here# x,amap(int,input("").split(" "))# sum((1/2)*(a*x(ax)/(4*a)))# print(f"{sum:.2f}")x,amap(int,input().split())print(f"{((1/2)*(a*…...
CAU人工智能class3 优化器
优化算法框架 优化思路 随机梯度下降 随机梯度下降到缺点: SGD 每一次迭代计算 mini-batch 的梯度,然后对参数进行更新,每次迭代更新使用的梯度都只与本次迭代的样本有关。 因为每个批次的数据含有抽样误差,每次更新可能并不会 …...
学习 Android(十一)Service
简介 在 Android 中,Service 是一种无界面的组件,用于在后台执行长期运行或跨进程的任务,如播放音乐、网络下载或与远程服务通信 。Service 可分为“启动型(Started)”和“绑定型(Bound)”两大…...
SpringAI开发SSE传输协议的MCP Server
SpringAI 访问地址:Spring AI Spring AI是一个面向人工智能工程的应用框架,由Spring团队推出,旨在将AI能力集成到Java应用中。Spring AI的核心是解决AI集成的根本挑战,即将企业数据和API与AI模型连接起来。 MCP…...
【泛微系统】后端开发Action常用方法
后端开发Action常用方法 代码实例经验分享:代码实例 经验分享: 本文分享了后端开发中处理工作流Action的常用方法,主要包含以下内容:1) 获取工作流基础信息,如流程ID、节点ID、表单ID等;2) 操作请求信息,包括请求紧急程度、操作类型、用户信息等;3) 表单数据处理,展示…...
如何成为更好的自己?
成为更好的自己是一个持续成长的过程,需要结合自我认知、目标规划和行动力。以下是一些具体建议,帮助你逐步提升: 1. 自我觉察:认识自己 反思与复盘:每天花10分钟记录当天的决策、情绪和行为,分析哪些做得…...