策略模式Strategy——回家乘什么车?

YOLO26算法星形目标识别+训练好的模型+100张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[星星(Star)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 85 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9950** mAP50-95 | 0.8477 Precision | 1.0000 Recall | 0.9954 train/box_loss | 0.8235 train/cls_loss | 0.7275 val/box_loss | 0.7248 val/cls_loss | 0.9621 【训练过程分析】 85 轮训练后,我们得到了一个 mAP50 为 0.9950 的模型,这真是让人惊喜的成绩。一开始,模型的训练过程进展非常迅速,loss 在前 20 轮内从 1.5000 下降到 1.0000 附近,此后,loss 依然保持稳步下降,但速度明显放缓,特别是在第 30 轮到第 50 轮之间,loss 曲线进入了一个平台期,大约在 0.85 附近徘徊了 10 轮,直到第 60 轮左右才再度加速下降。这样的表现说明模型在前期阶段收敛良好,但到了后期,确实需要更多的训练轮次以确保模型的稳定性。 在验证集上,val_loss 保持平稳,没有出现明显的波动,这进一步证明了模型没有过拟合。然而,我们注意到在第 80 轮和第 85 轮之间,val_loss 似乎有所微弱的反弹,尽管这种波动并不显著。在训练集上,前 50 轮训... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载
1.问题与模式

时间:2014年6月       学校:廊坊师范        家:石家庄       人物:学生

       又快到期末考试了,回家的节奏也奔上日程,无聊之余就想想这次回家的事儿。对我来说回家主要有两种交通方式:1.汽车,2.火车。像飞机、高铁了什么的咱就不考虑了一个是资金匮乏、条件不允许(廊坊没飞机场吧?)外,廊坊到石家庄这么近搞那么多花样也太伤神经了(尤其对一路痴来说)。现在来一一分析下这两种方式:

       1.汽车  方便省事,不用在学生大部队回家的时候担心抢不到火车票而郁闷,但是对于晕车的人来说4h的车程还是蛮煎熬的,或者来个高速紧急事件把你放高速上几个小时还是有可能的。不得不提的一点就是从大一到现在廊坊~石家庄的汽车票价已经涨三次了,第四次貌似也正在筹备中。。。

       2.火车  “回家之难,难于一票解千愁”,学生的好处就是出去玩啦寒暑假回家的时候手里有一张踏踏实实的学生证,能半价的半价不半价也能来个七五折,比坐汽车回家划算多了。但是我们也不能忽略这便宜背后隐藏的真相,各种抢票各种半夜蹲点,整得有时候回家就得像个夜猫子一样。

       相比较而言,对于学生的我来说,回家的方式莫过于火车为主、汽车为辅,火车行不通了再买张汽车票吧。如果哪一天手上有了大把的闲钱,科技再发达点,没准儿我就乘UFO回家了。呃,想多了,那会儿应该人就不在廊坊了

2.结构:UML图

3.模式组成

     1)环境角色(Context):持有一个对Strategy的引用,最终给客户端调用。用一个ConcreteStrategy对象来配置,可定义一个接口来让Strategy访问它的数据。

     2)抽象策略角色(Strategy):策略类,通常由一个接口或者抽象类实现。定义了一个公共接口,各种不同的算法以不同的方式实现这个接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。

     3)具体策略角色(ConcreteStrategy):包装了相关的算法和行为,实现了Strategy定义的接口,提供具体算法的实现。

4.应用

     1)多个类只区别在表现行为的不同,在运行时动态选择具体要执行的行为。

     2)需要在不同情况下使用不同的策略,或者策略还可能在未来用其它方式实现。

     3)对客户隐藏具体策略的实现细节,以避免暴露复杂的、与算法相关的数据结构。

     4)一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现。将相关的条件分支移入它们各自的Strategy类中以代替这些条件语句。

5.优点

     1)算法系列:Strategy类层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法中的公共功能。

     2)简化了单元测试:每个算法都有自己的类,可以通过自己的接口单独测试。每个算法可保证它没有错误,修改其中任一个时也不会影响其他的算法。

     3)消除了一些条件语句:当不同的行为堆砌在一个类中时,就很难避免使用条件语句来选择合适的行为。将这些行为封装在一个个独立的Strategy类中,可以在使用这些行为的类中消除条件语句。

     4)提供了可以替换继承关系的办法:继承可以处理多重算法或行为,但它也使得动态改变算法或行为变得不可能。

   缺点

     1)客户端必须知道所有的策略类,并自行决定使用哪一个策略类。

     2)造成很多策略类的产生,可以通过使用享元模式在一定程度上减少对象的数量。

6.模式实现

    UML图

代码实现

    //客户端代码
    static void Main(string[] args)
    {
        PersonContext person;
        //实例化不同的交通工具,最终得到的回家方式不同
        person = new PersonContext(new TrainStrategy());
        person.PersonInterface();

        person = new PersonContext(new AutomobileStrategy());
        person.PersonInterface();

        Console.Read();
    }
    //PersonContext类
    class PersonContext
    {
        //声明一个GoHomeStrategy对象
        private GoHomeStrategy gh;

        //通过构造方法,传入具体的回家交通策略
        public PersonContext(GoHomeStrategy gh)
        {
            this.gh = gh;
        }
        public void PersonInterface()
        {
            gh.transportation();
        }
    }
    //抽象算法类,定义所有回家的交通方式
    abstract class GoHomeStrategy
    {
        //算法方法
        public abstract void transportation();
    }
    //具体交通方式,火车类
    class TrainStrategy:GoHomeStrategy 
    {
        public override void transportation()
        {
            Console.WriteLine("乘火车回家");
        }
    }
    //具体交通方式,汽车类
    class AutomobileStrategy:GoHomeStrategy
    {
        public override void transportation()
        {
            Console.WriteLine("乘汽车回家");
        }
    }

7.其它相关模式

     状态模式、简单工厂模式

8.总结

     策略模式: 它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

     在这个模式的运用中,很多时候采用与简单工厂模式和反射方法结合的方式,从而更好的实现OCP原则。

 

PS:策略模式中的算法并不是单纯的指数学上一个计算的步骤,而是指实现某项功能的一种方式方法。

科技中介服务机构如何提升客户在技术评估与需求匹配环节的服务效率与专业度.docx 科技中介服务机构如何提升客户在技术评估与需求匹配环节的服务效率与专业度 立即下载

相关推荐

51单片机的温湿度检测报警系统仿真资料

51单片机的温湿度检测报警proteus仿真系统

策略模式Strategy——坐什么车回家?

1.存在的问题和模型 :2014年6月       学校:廊坊师范        家:石家庄       人物:学生        又快到期末考试了。回家的节奏也奔上日程,无聊之余就想想这次回家的事儿。对我来说回家主要有两种交通方式:1.汽车。2.火车。像飞机、高铁了什么的咱就不考虑了一个是资金匮乏、条件不同意(廊坊没飞机场吧?)外,廊坊到石家庄这么近搞那么多花样也太伤神经了(尤其对一...

weixin_34081595的博客 124

国央企创新负责人如何通过平台识别并引进关键技术?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

设计模式之策略模式实例-选择出行方式

什么是策略模式? 策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数。 策略模式定义和封装了一系列的算法,它们是可以相互替换的,也就是说它们具有共性,而它们的共性就体现在策略接口的行为上,另外为了达到最后一句话的目的,也就...

qq_44858403的博客 2284

科技中介服务机构如何打造高效、可复制的技术交易服务流程?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

windows自动连接无线网工具

手机开启连接特定蓝牙就自动开热点,windows检测手机蓝牙,检测到后连接蓝牙触发手机开热点,电脑就能自动连接手机热点,实现手机在电脑旁边时电脑能自动连接手机热点。

策略模式(策略设计模式)详解

策略模式(策略设计模式)详解 在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。 在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。...

uzong 9945

从零构建:如何用MATLAB和SDR硬件搭建你的第一个OFDM卫星通信原型系统

本文详细介绍了如何利用MATLAB和SDR硬件从零构建OFDM卫星通信原型系统。通过核心组件选型、开发环境配置、OFDM算法实现到系统集成与优化的完整流程,帮助通信工程学生和DIY爱好者快速掌握软件无线电技术在卫星通信中的应用。特别推荐使用HackRF One和MATLAB工具箱实现高性价比的OFDM系统验证。

pz890123456的博客 378

设计模式-策略模式

1、概念 策略模式:又叫算法簇模式,定义了不同的算法,并且可以相互替换,算法变化独立于客户端,针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式可以动态改变对象的行为,属于对象行为型模式。通常,策略模式适用于当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种实现方式时使用。 设计原则:把一个类中经常改变或者将来可能改变的部分提取出来,作为一

回家换拖鞋的专栏 1028

使用Python开发TreeATE的测试脚本常见问题

ImportError: No module named py_compile 找不到 DevLangPython3.dll 以上2个问题都是没有安装正确的Python,当前TreeATE依赖32位Python 2.7版本,暂时不支持Python 3以上版本

蓝白云的专栏 1033

CMN-700组件全解析:从XP路由器到HN-F主节点的实战配置指南

本文深入解析Arm CMN-700片上网络IP的核心组件与实战配置。重点剖析了XP网格路由器的拓扑规划与CHI通道管理,以及HN-F全一致性主节点在维护缓存一致性、管理SLC和地址映射中的关键作用。通过一个12×12网格的配置案例,为硬件工程师提供了从组件布局、地址映射到性能调优的系统级设计指南。

weixin_29313423的博客 284

行为型模式——策略模式

策略模式的定义与特点 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 策略模式的主要优点如下。 多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句。 策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到父类里面,从而避免重复的代码。 策略模式可以提供

qq_36589864的博客 237

OpenPnP/Arduino - 二手西门子电动飞达的通讯协议解析与实战

本文详细解析了二手西门子电动飞达的通讯协议,并通过Arduino控制板实现与开源贴片平台OpenPnP的集成。文章涵盖了硬件接口定义、协议帧结构分析、Arduino控制实战、OpenPnP集成技巧以及二手飞达翻新指南,为开发者提供了全面的技术指导和实战经验。

weixin_30411819的博客 202

设计模式(一)策略(Strategy)模式

参考资料: 百度百科——策略模式 https://blog.youkuaiyun.com/hguisu/article/details/7558249 概念解析 策略模式strategy,对象行为型 实现一个功能有多种算法或者策略,可以依据环境或者条件的不同选择不同的算法或者策略来完成此功能。 比如查找、排序等。 常用的编码方式: 1. 创建一个类,在类中提供多个方法,每个方法对应一个具体的查找方法。一个...

暴躁兔子的记录 1002

ensp企业网综合实验(课程设计)

使用MSTP+VRRP技术实现负载均衡以及增加网络的可靠性;出口配置napt;所有用户均为自动获取IP地址;

qq_50829760的博客 1万+

【K8S系列】Kubernetes Pod节点CrashLoopBackOff 状态及解决方案详解【已解决】

在 Kubernetes 中,Pod 的状态为 **`CrashLoopBackOff`** 表示某个容器在启动后崩溃,Kubernetes > 尝试重启该容器,但由于持续崩溃,重启的间隔时间逐渐增加。下面将详细介绍 `CrashLoopBackOff > `状态的原因、解决方案及相关命令的输出解释。

颜淡慕潇 8381

代理模式Proxy——在线代理

代理模式 设计模式

Cherie 5552

XGBoost原生接口和Sklearn接口参数详解

XGBoost原生接口和Sklearn接口参数详解

算法工程师 2654

模式三工厂

1.情景与模式 时间:2014年4、5月 地点:廊坊师范人物:学生 四五月份的季节,学校里边各种花草树木蓬勃生长。十二教后花园中的桃树仿佛一夜之间百花齐绽,惹得众多女生拍照留念。在桃树的引领之下山楂树上点点白光也日渐增多。下面我用设计模式中的简单工厂模式的UML图来简单展示一下PeachFlower和HawthornFlower 简单工厂模式...

Cherie 2506

一次搞懂 OData Deep Create:在 ABAP Client Proxy 中优雅完成父子实体的一键插入

摘要: 本文面向熟悉SAP Gateway与OData的ABAP工程师,详解Deep Create的核心概念与实现。Deep Create允许在一次请求中原子化创建主实体及其关联子实体(如Team与Manager),解决多次HTTP请求导致的脏写问题。对比OData v2/v4协议差异后,重点阐述ABAP Client Proxy中通过Data Description Node构造层级数据描述树的方法,包括根/子节点定义、属性对齐及业务数据绑定。提供可复用的ABAP代码骨架,并区分Deep Create与$

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 191

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

桥接模式Bridge

1)模式概述:将抽象部分与实现部分分离,使它们都可以独立的变化,让抽象类和派生类各自实现自己的对象。当一个系统有多维度的变化时,将各个维度分离出来让它们独立于变化(多角度地分类实现对象),从而减少耦合。它很好的符合了OCP和优先使用对象,从而避免了只用继承所造成的大量类的增加 2)核心:将抽象化(Abstraction)与实现化(Implementation)解耦,用组合/聚合关系代替继承 抽象化:将存在共性的多个实体当做一个实体对待,忽略多余信息

Cherie 2015

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【面向对象设计】OOD原则

不同的设计模式对应不同的需求,而设计原则则是面向对象设计不变的定律。设计模式遵循这些基本的原则,设计原则又由设计模式来实现,二者相辅相成。在面向对象程序设计中遵守这些原则可以使我们的代码更灵活,更易于复用和拓展。

Cherie 1835

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

设计模式初涉

在开始学设计模式这一块,先把《大话设计模式》浏览了一遍,看完后的结果就是代码没懂几个,就瞅着那些小故事了。虽说是小故事大道理,可是对我来说却是故事没少听,道理还没出来就先略过了,所以真正看的时候可要细心了,现在先来谈谈我对设计模式的初步感知。 敲代码有一年多了,虽然知道它有一定的规则可循,但是设计代码的时候还是懵懂无知。尤其是在接触了软件工程后,更是感觉对这方面的认知还非常欠缺。就像在学排序的时

Cherie 1348
上一篇: 代理模式Proxy——在线代理
下一篇: 模式三工厂
xjCherie
博客等级 码龄14年 405粉丝 129原创
评论 34
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值