严选算法模型质量保障
在算法模型整个生命周期**(算法模型生命周期:初始训练数据 --> 模型训练 --> 模型评估 --> 模型预估 --> 训练数据)**中,任何环节的问题引入都可能导致算法模型质量问题。所以我们在做模型质量保障的过程中,需要关注各个阶段的质量。
1. 背景
目前算法模型已经被广泛应用于严选各个方面,可以说算法无处不在:
在C端为严选APP提供搜索、推荐能力;
在智能触达营销系统中提供个性化营销能力;
在外部广告实时竞价交易平台中提供智能竞价能力;
在B端为供应链提供预估商品补货量能力;
……
随着业务的不断发展,算法模型质量保障的完善也日趋紧急。算法模型质量保障在严选的起步相对较晚,最近两年才开始起步,本文将对严选当前的模型质量保障体系做一下简单的总结,谈一谈模型质量保障的手段以及严选优先落地的保障手段。
算法在严选的应用核心主要可以分为三大块:召回、排序、重排。
召回层首先通过算法模型从多个目标候选集中召回资源(如商品、榜单、活动、话题等);
排序层的模型主要是精排的深度学习模型,按照预估的点击率、加购率、转化率等进行排序;
重排层主要是重排算法和策略,包括流量决策算法、多样性重排算法等。
最后将个性化的结果展示给用户,然后用户是否点击、加购、购买等行为再进行埋点落数仓,提取出训练样本,用来更新模型,如此形成一个良性的闭环系统。
我们对算法模型系统生命周期进行了抽象,以此来探索算法全方位质量保障,算法模型生命周期大概经过以下流程:初始训练数据 -> 模型训练(生成模型) -> 模型评估(测试模型) -> 模型预估(使用模型) -> 模型应用(反馈模型),最终形成闭环。
模型训练过程是通过训练样本和答案得出算法模型的过程;
模型评估是通过评估样本和刚训练完成的模型得出新答案的过程,因为评估样本是已知答案的,所以可以通过对比新答案和参考答案,来评估模型效果;
模型预估是通过预估样本和模型得出答案的过程,在商品推荐场景中预估样本可以理解为用户+商品,而我们预估的就是用户对商品的点击或者购买概率,只是是否点击、购买发生在未来;
模型应用是反馈模型生成新的训练样本的过程,在商品推荐场景中就是将推荐商品展现给用户,然后获取用户真实的点击、购买等行为数据。
在算法模型生命周期中,任何环节的问题引入都会导致算法质量问题。
我们也分析了一下算法测试相比其他服务端测试的难点:
首先,其他服务端的行为基于不同的输入预先确定,而算法的测试输入为特征(比如用户特征是实时更新的),测试输出是预估值存在不确定性,可解释性方面由于深度学习模型的神经网络不可解,所以可解释性差,在结果验证方面无法确认输入对应输出的逻辑是否准确;
测试周期方面,由于模型版本会自更新,随时间变化模型预估效果可能会出现偏差,所以我们无法在模型上线后就确定测试完成不会发生模型类问题,需要持续关注;
测试关注点上,不仅要关注模型质量,还要关注特征质量、数据质量;
除此之外,相对于其他服务端测试,模型问题抽象度高,难分析定位。
下面通过算法模型生命周期,进行模型问题分析。
2. 模型问题分析
我们对算法模型系统抽象出来了一个闭环,讲到任何环节的问题引入都会导致算法模型质量问题。所以接来下我们会从算法模型闭环出发,以算法问题视角讲述算法会出现的典型问题,引出算法的全方位质量保障手段。
我们从模型应用阶段开始分析,模型应用是模型预估后反馈模型的一个过程,比如严选推荐场景中推荐的商品曝光给用户,用户会产生点击、收藏、加购、购买等一系列行为,这些数据是建立机器学习的第一步,而这个阶段容易出现数据质量问题。
在模型应用到模型训练的过程中,算法工程师会根据原始数据经过一系列拼接、计算等得到训练用的特征,而这个过程中容易出现特征质量问题(也可以归为数据质量问题)。
在模型训练阶段,容易出现欠拟合、过拟合等一系列问题,但是这些问题是算法工程师需要关注的,QA可以不过多关注。
在模型评估阶段,容易出现验证集和训练集划分不均等问题导致模型评估失真,但是这些问题同样是算法工程师需要关注的。
在模型训练到模型预估的过程中,容易出现模型延时问题,严选目前对模型实效性要求不高,但是后续也会升级到小时级更新,延时问题会更突出。
在模型预估阶段,容易出现策略机制一致性问题(模型实际效果不符合调研预期)、数据质量问题(样本数据问题、特征计算问题)、功能、性能问题等。
首先根据问题症状的明显度,我们先把问题进行了大致分类,偏急性的问题,问题症状严重,表现明显,这类问题则需要拦截;偏慢性的问题,初始症状不明显,但是积累渐变,这类问题则需要召回。分析整个算法模型闭环,我们把问题分成5大类:
第一类是主要针对搜索推荐等容易出现的Badcase;
第二类是策略机制一致性问题,出现在模型预估阶段;
第三类是模型延时问题,出现在模型评估到模型预估的过程中;
第四类是数据质量问题,出现在模型预估阶段或者模型预估到模型训练的过程中;
第五类是功能、性能问题,出现在模型预估阶段。
其中两类是急性问题,两类是慢性问题,还有一类比较特殊,他就是Badcase。Badcase更准确来讲应该是一种结果而出现这种结果的原因可能包含其他四种问题,所以Badcase挖掘可以理解为把整个算法系统当作黑盒来测试。
分析这些问题可以发现,最终导致的结果可以分为三种:
第一种是Badcase;
第二种是算法模型效果问题,包括策略机制一致性问题,模型延时问题,数据质量问题、性能问题等都会影响最终的模型效果;
第三种是功能策略问题。
因此也引出算法模型质量问题保障的重点:Badcase挖掘、算法模型效果问题发现、功能策略问题发现。
算法模型效果的质量保障是模型质量保障的重点和难点,影响模型效果的因素多样,导致模型问题抽象度高,难分析定位。考虑到优先级和投入产出比,算法模型效果质量保障是一个由浅入深的过程,或者说是一个从问题可知、可测到问题可控的过程。
所以前期我们对算法模型效果质量的保障的目标是做到问题可知,因为模型离线评估是算法同学完成的,如果评估指标下降会拦截模型作用到线上,所以我们可以通过模型先验和后验效果一致性来发现实际效果问题,然后在此基础上关注了性能问题对实际效果的影响。对于数据质量问题、策略机制一致性问题、模型延时问题等是后续需要进一步深入完善的。另外,在模型上线效能上我们通过pipeline上线自动化验证实现了进一步提升。
3. 模型质量保障重点
3.1 Badcase挖掘
因为算法模型原因,线上搜索、推荐可能存在较明显Badcase,比如检索词和搜索结果不相符,推荐结果出现不应该出现的商品,推荐等。这些Badcase对用户体验伤害很大,甚至会影响转化、收入。
那我们要做的就是在线下尽可能拦截这类问题,在线上尽早召回问题。因此问题分析可以概括为两点:
从模型评估到模型预估的过程中,缺少高效率、高覆盖的算法模型Badcase线下验证、拦截能力;
在模型预估过程中,缺少有效的算法模型Badcase线上召回能力。
对此我们平台化打造了Badcase挖掘能力,作为模型升级、新模型上线前质量保障的重要环节,实现模型可能引起的Badcase线下可拦截;通过属性条件筛选用户,以及自动挖掘,实现测试用户高覆盖、高效率。在这之前我们线下挖掘Badcase只能看自己账号测试APP,覆盖低;或者构造用户手动请求接口获取搜索推荐商品ID,然后再把ID通过小工具可视化,效率低。
Badcase挖掘平台化主要经历了两个阶段:
阶段一是人工挖掘,通过平台人工查看模型作用下给用户推荐的商品,或者用户搜索到的商品,分析为该用户推荐某商品,或者搜索到某商品的原因,从而确认模型效果。但是,人工评测的模式强依赖测试人员经验积累,门槛高,且每次只能评测单个用户的推荐、搜索商品,效率较低、用户覆盖面有限,因此需要寻求低门槛、更高效、高覆盖的模型线下效果验证能力。
阶段二是自动挖掘,通过平台选择批量的用户生成批量的测试结果,自动计算模型评测指标,自动筛选出Badcase风险等级高的结果,最后再人工确认高风险结果,通过这样的方式提高测试用户覆盖,提高测试效率。
3.2 模型效果质量
问题分析中讲到算法模型效果质量的保障这块我们优先实现了问题可知,我们第一步建立了模型后验效果监控,实现了模型效果问题T+1可知。在此基础上,我们建立了精细化的性能监控,对性能问题实时可知。后续我们还会进一步深入保障数据质量,模型延时等方面。
3.2.1模型后验效果
模型效果的评估指标有很多,我们需要做的是根据不同场景和业务,选择合适的指标,这样通过观察评估指标就能判断模型实际效果,从而协助模型升级和迭代。
一般模型主要包括分类、回归、聚类模型,我们首先分析下这些模型通用的模型效果评估指标:
分类模型通用评估指标包括查准率、查全率、正确率、F1分数、AUC/GAUC、KS值、PSI值等;
回归模型通用评估指标包括平均绝对值误差、均方误差、均方根误差、均值平方对数误差、中位数绝对值误差、决定系数等;
聚类模型通用评估指标包括纯度、F1分数等。
虽然搜索、推荐、广告等通常使用回归模型,但是它们的衡量标准其实是是否点击、是否转化,是一种分类问题,所以使用分类模型评估指标更加合理。另一方面,我们发现模型离线评估其实通常是由算法同学完成的,只有通过离线评估的模型才会作用到线上,所以我们在评估模型实际效果的时候不应该盲目去评估所有的指标,而应该以离线评估指标为基准。
以严选为例,搜索、推荐、广告等模型的离线评估使用点击、加购或者转化的AUC/GAUC,所以在线模型评估需要关注的指标也是点击、加购或者转化的AUC/GAUC,在此基础上完善其他指标可以辅助多维度分析模型效果。
理想情况下某个用户对某个商品的兴趣分通过模型预估流和模型评估流结果是一样的,因此我们可以通过先验和后验效果一致性来发现这种问题。那什么是先验效果和后验效果?
所谓先验效果就是模型评估效果(发生在模型生效前),而后验是指非实时的,需要通过应用反馈的曝光、点击、转化数据来计算线上实际的效果指标。
如图是模型预估和模型评估两条流的逻辑抽象:
先验、后验效果一致性的原理图
在模型评估阶段,我们通过对已知答案的评估样本计算特征,使用模型再排序的方式,观察是否把转化的样本尽量排在前面来评估模型效果(先验效果),如果模型的目标是点击或者转化,那么先验效果可以通过点击AUC/GAUC或者转化AUC/GAUC来衡量。
在模型预估阶段,我们类似的对预估样本计算特征,使用模型计算预估值的方式进行排序,未来用户会产生真实的点击、购买行为,这样就可以计算模型实际效果(后验效果),同样的,后验效果指标可以去对齐先验效果指标。
但是很多时候模型评估和预估阶段,采用了不同的评价体系,在线只是通过实验方式对比新老模型点击、转化、UV价值等业务效果指标,包括我们也有这样的情况,这样做的问题在于不知道线上点击率、转化率达到多少或者提升多少才算达到预期,所以对模型效果问题的判断其实是不够的。
3.2.2 性能监控
性能问题和大多数工程服务问题存在着共通性,想必大家都是比较了解的。比如活动期间流量往往会成倍上升,算法服务如果存在性能问题会导致大量超时:
如果是召回阶段的大量超时,则会导致召回商品没有用户相关性关联而效果差,影响转化、收入,甚至开天窗的可能;
如果是精排模型或者重排算法的大量超时,则会导致线上没有算法加成效果大打折扣,影响转化、收入。
对此,我们监控了所有场景下各链路召回耗时、精排耗时、重排耗时,召回超时量/率、精排超时量/率、重排耗时量/率,以及前处理耗时、后处理耗时、pipeline耗时、总耗时等,及时召回所有场景各个阶段的超时问题并处理。
3.3 pipeline上线自动化验证
严选为了适应不同场景下的搜索、推荐,召回、排序、重排使用的模型、算法、策略都是以算子的概念任意配置组装的,因为配置是人工操作的,所以策略、算法作用到模型预估阶段容易出现因为配置错误导致的策略、算法问题,甚至模型未生效等情况,影响模型效果质量。因为模型后验效果是T+1问题可知的,问题可知滞后,所以这个阶段基本的验证是有必要的,可以有效拦截大部分策略、算法问题作用到线上。我们已经将自动化验证结果作为pipeline上线的卡点,只有验证通过的pipeline才能上线。
在上线前这个阶段,我们可以做策略、算法有效性的校验,以及Badcase挖掘等。在有效性校验中,验证多通道召回的召回类型、算法得分,排序前后位置变化、排序模型得分,重排前后位置变化等。在Badcase挖掘中,根据不同场景配置不同的自动挖掘指标。
在自动化验证前,pipeline上线没有严格的卡点,依赖算法同学自己验证导致线上问题频现。另外验证需要一系列的操作:配置pipeline -> 配置实验 -> 手动用例请求 -> 手动验证 -> 上线,耗时1小时以上。接入pipeline自动化验证后只需要操作:配置pipeline -> 自动化验证 ->上线,整个过程的操作下降到分钟级别,其中自动化验证耗时2分钟以内。通过这样的方式,大大提升了pipeline上线效率。
4. 模型质量平台
基于模型质量保障重点中的保障点,我们通过平台化的方式落地了其中的测试、监控能力。下面会介绍平台的设计、展示等。
4.1 模型质量平台设计
4.1.1 平台架构设计
目前我们将Badcase挖掘、模型效果质量、pipeline上线自动化验证卡点等能力都综合到了算法模型质量平台。
模型评估指的是在线模型评估,对原始数据进行处理生成曝光转化、曝光加购、曝光点击等数据,再进行评估指标计算分析,将分析结果保存在MySQL中,最后通过平台实现灵活配置、可视化,监控报警。目前平台内的评估指标包括各个场景下不同模型目标、算子类型、模型版本、坑位等的AUC、GAUC、CTR、PCTR、CVR、PCVR、PCOC等。
模型评测模块提供Badcase挖掘功能,包括手动挖掘和自动挖掘,通过获取真实用户推荐结果或搜索结果,再进行计算分析,并将分析结果保存在MySQL中。
模型验证模块为pipeline上线提供自动化验证的能力,综合pipeline有效性自动验证结果和Badcase自动挖掘结果。pipeline有效性验证为其中各个算子的有效性验证,Badcase挖掘包括重合度、打散度、覆盖度等。该模块根据平台配置的各个场景下验证项和阈值,触发一键验证后,通过计算中心计算结果判断是否可以上线。
4.2 模型质量平台展示
4.2.1 Badcase挖掘
进入“自动挖掘”界面 -> 根据筛选条件查询用户 -> 批量选择测试的用户 -> 选择想要测试的接口(模型) -> 生成批量请求数据 -> 编辑、确认请求数据 -> 发送请求,开始Badcase挖掘。
挖掘报告界面:
上部为所有测试用户评测指标的均值,可以反映模型表现在各评测指标的整体趋势。
下部为所有单测试用户评测指标,可以快速筛选出Badcase风险等级较高的测试用户。
查看详情可以进一步人工确认是否为Badcase,然后进行反馈:
4.2.2 模型后验效果
模型后验效果的计算依赖客户端埋点数据,经过拼接、计算后可以得到曝光点击、曝光转化等数据。
然后通过计算得到模型评估指标。目前我们对指标进行了精细化,模型目标包括点击、加购、转化,算子类型包括召回、精排、重排,编排版本包括线上生效的所有版本,坑位包括全坑位以及靠前的多个坑位,另外还区分了新老用户。通过这样的方式多维度分析模型实际效果。
在指标上,我们优先落地了AUC、GAUC、PCOC、CTR、PCTR、CVR、PCVR等。
最后根据平台配置对异常点及时报警。
4.2.3 pipeline上线自动化验证
联合算法一体化平台,在预发布阶段一键触发自动化验证,只有验证通过才能上线。
然后可以进一步查看测试报告详情,定位问题。
4.3 模型质量平台总结
模型质量平台经过一年多时间的打磨演进,经历了多个阶段。Badcase挖掘从一开始人工挖掘到自动挖掘,再到成为自动化验证项;模型后验效果从脚本工具阶段到平台化;模型上线流从手动验证到一键自动化验证。实现了严选算法模型质量保障很多方面的从无到有,降低了模型质量保障的技术门槛,同时提高了效率。
5. 展望
模型质量平台目前已经实现了自动化、工具化、服务化、可视化等能力。未来我们期望可以实现模型训练、模型评估、模型预估、模型应用等阶段的全流程质量保障闭环:
- 首先从算法模型质量保障的深度上来说,还有待进一步深入到特征质量、 数据质量。
- 其次从实效性方面考虑,目前的模型后验效果是T+1问题可知,当天问题无法召回,需要进一步提升实效性。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
相关文章:
严选算法模型质量保障
在算法模型整个生命周期**(算法模型生命周期:初始训练数据 --> 模型训练 --> 模型评估 --> 模型预估 --> 训练数据)**中,任何环节的问题引入都可能导致算法模型质量问题。所以我们在做模型质量保障的过程中࿰…...
学习Bootstrap 5的第七天
目录 徽章 徽章 实例 上下文徽章 实例 胶囊徽章 实例 元素内的徽章 实例 进度条 基础进度条 实例 进度条高度 实例 彩色进度条 实例 条纹进度条 实例 动画进度条 实例 混合色彩进度条 实例 徽章 徽章 在 Bootstrap 中,徽章(Badg…...
VirtualBox(内有Centos 7 示例安装)
1常见概念以及软件安装 1.1 虚拟化技术: 虚拟化技术指的是将计算机的各种硬件资源加以抽象、转换、分割,最后组合 起来的技术。其目的和作用主要是打破硬件资源不可分的情况,方便程序员自 己集成所需资源。 1.2 Virtual Box 其是虚拟化技术作…...
在 Git 中删除不再位于远程仓库中的本地分支
git 删除远端已经被删除然而本地还存在的分支 1. 修剪不在远程仓库上的跟踪分支 git remote prune origin如果git仓库将branch1被删除,可以用用git remote prune origin删除在本地电脑上的remotes/origin/branch1 git remote show origin可以看到下面所示…...
容器编排学习(九)服务管理与用户权限管理
一 service管理 1 概述 容器化带来的问题 自动调度:在 Pod 创建之前,用户无法预知 Pod 所在的节点,以及 Pod的IP 地址一个已经存在的 Pod 在运行过程中,如果出现故障,Pod也会在新的节点使用新的IP 进行部署应用程…...
【C刷题】day1
一、选择题 1.正确的输出结果是 int x5,y7; void swap() { int z; zx; xy; yz; } int main() { int x3,y8; swap(); printf("%d,%d\n",x, y); return 0; } 【答案】: 3,8 【解析】: 考点: ÿ…...
zabbix配置钉钉告警、和故障自愈、监控java
文章目录 1.配置钉钉告警server 配置web界面创建媒介给用户添加媒介测试告警 实现故障自愈功能监控Javazabbix server 安装java gateway配置 Zabbix Server 支持 Java gateway使用系统内置模板监控 tomcat 主机 1.配置钉钉告警 server 配置 钉钉告警python脚本 脚本1 cd /…...
第九章 Linux实际操作——Linux磁盘分区、挂载
第九章 Linux实际操作——Linux磁盘分区、挂载 9.1 Linux分区9.1.1原理介绍9.1.2 硬盘说明9.1.3 查看所有设备搭载情况 9.2 挂载的经典案例9.2.1 说明9.2.2 如何增加一块硬盘9.2.3 虚拟机增加硬盘步骤 9.3 磁盘情况查询9.3.1 查询系统整体磁盘使用情况9.3.2 查询指定目录的磁盘…...
设计模式-解释器设计模式
文章目录 前言一、 解释器模式的结构1、抽象表达式(Abstract Expression)2、终结符表达式(Terminal Expression)3、非终结符表达式(Non-terminal Expression)4、上下文(Context)5、客…...
实现 js 中所有对象的深拷贝(包装对象,Date 对象,正则对象)
通过递归可以简单实现对象的深拷贝,但是这种方法不管是 ES6 还是 ES5 实现,都有同样的缺陷,就是只能实现特定的 object 的深度复制(比如数组和函数),不能实现包装对象 Number,String ࿰…...
PathVariable注解
postman测试传参:http://localhost:8080/admin/employee/2 PathVariable PathVariable注解用法和作用...
宋浩高等数学笔记(十二)无穷级数
完结,宋浩笔记系列的最后一更~ 之后会出一些武忠祥老师的错题&笔记总结,10月份就要赶紧做真题了...
使用Clipboard插件实现Vue的剪贴板功能
在Web开发中,剪贴板功能是一个常见但又非常有用的功能。通过将数据复制到剪贴板,用户可以方便地将数据粘贴到其他应用程序或网站上。在本文中,我们将介绍如何使用Clipboard插件结合Vue框架实现剪贴板功能。 Clipboard插件简介 Clipboard插件…...
Latex参考文献中大写字母编译后自动变成了小写,如何保持原字母大写形式
一、问题 1.1 bib文件原有内容 以下参考文献中MANET为大写 inproceedings{Miao2013FullySK, title{Fully Self-organized Key Management Scheme in MANET and Its Applications}, author{Fuyou Miao and Wenjing Ruan and Xianchang Du and Suwan Wang}, year{2013} } …...
Jest单元测试相关
官方文档:jest 中文文档 1、模拟某个函数,并返回指定的结果 使用Jest测试JavaScript(Mock篇) 有这样一个需求,mock掉Math.random方法(0(包括)~1之间),使其返回指定的0…...
Scrum敏捷开发流程及关键环节
Scrum是一种敏捷开发流程,它旨在使软件开发更加高效和灵活。Scrum将软件开发过程分为多个短期、可重复的阶段,称为“Sprint”。每个Sprint通常为两周,旨在完成一部分开发任务。 在Scrum中,有一个明确的角色分工: 产…...
微服务04-Gateway网关
作用 身份认证:用户能不能访问 服务路由:用户访问到那个服务中去 负载均衡:一个服务可能有多个实例,甚至集群,负载均衡就是你的请求到哪一个实例上去 请求限流功能:对请求进行流量限制,对服务…...
YOLOV7改进-针对小目标的NWD(损失函数)
link 1、复制这些 2、utils-loss,这里加 3、把这几行复制到utiils的loss.py 4、先对CoputerLoss类做修改 5、把那一行替换成这个 6、修改 7、iou_ration是超参,可以调,如果小目标比较多的话,这个值可以低一些,…...
计算机二级考试题库及答案
题目一:计算机网络基础 1.计算机网络的定义是什么? 计算机网络是指由通讯设备和不同类型计算机组成的计算机系统,利用传输介质,如电缆、光缆、无线等与通讯协议,实现计算机之间的信息传递和共享资源。 2. 内网和外网有什么区别…...
2023国赛高教社杯数学建模C题思路分析
1 赛题 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此, 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…...
Ansible playbook简介与初步实战,实现批量机器应用下载与安装
一.Ansible playbook简介 playbook是ansible用于配置,部署,和管理被节点的剧本通过playbook的详细描述,执行其中的一些列tasks,可以让远端的主机达到预期的状态。playbook就像ansible控制器给被控节点列出的一系列to-do-list&…...
[machine Learning]强化学习
强化学习和前面提到的几种预测模型都不一样,reinforcement learning更多时候使用在控制一些东西上,在算法的本质上很接近我们曾经学过的DFS求最短路径. 强化学习经常用在一些游戏ai的训练,以及一些比如火星登陆器,月球登陆器等等工程领域,强化学习的内容很简单,本质就是获取状…...
09-JVM垃圾收集底层算法实现
上一篇:08-JVM垃圾收集器详解 1.三色标记 在并发标记的过程中,因为标记期间应用线程还在继续跑,对象间的引用可能发生变化,多标和漏标的情况就有可能发生。 这里我们引入“三色标记”来给大家解释下,把Gcroots可达…...
系统软件启动过程
实验一:系统软件启动过程 参考 重要文件 调用顺序 1. boot/bootasm.S | bootasm.asm(修改了名字,以便于彩色显示)a. 开启A20 16位地址线 实现 20位地址访问 芯片版本兼容通过写 键盘控制器8042 的 64h端口 与 60h端口。b.…...
【自学笔记】Python中的逻辑函数:any()、all()及同类函数的用法与示例
文章目录 Python中的逻辑函数:any()、all()及其他any()函数使用示例all()函数使用示例其他同类函数Python中的逻辑函数:any()、all()及其他 在Python中,any()和all()是两种常用的逻辑函数,它们在处理布尔值(True或False)的集合时非常有用。除此之外,Python还提供了一些其…...
OpenCV的绘图函数,实力绘画篮球场
关键函数:cv2.line(),cv2.circle(),cv2.rectangle(),cv2.ellipse(),cv2.putText() 等。 绘制几何形状 import cv2 as cv import numpy as npcv.rectangle(),cv.circle(),cv.line(),…...
Java之包装类的算法小题的练习
算法小题 练习一: 需求: 键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超过200为止。 代码示例: public class Test1 {public static void main(String[] args) {/*键盘录入一些1~10日之间的整数&…...
干涉阵相关知识
文章目录 Dirty ImageDirty BeamClean ImagePoint Spread Function(PSF)Station Beam关系Dirty Image 脏图像(Dirty Image): 脏图像是在射电干涉测量中观测到的图像,它是真实图像和仪器效应(包括PSF和站波束)的组合结果。 在射电干涉测量中,观测到的结果被称为“脏图像…...
如何使用Python进行可视化/音视频处理?
要使用Python进行可视化和音视频处理,可以使用以下库: matplotlib:用于绘制各种类型的图表和图形,包括折线图、柱状图、散点图等。 seaborn:基于matplotlib的可视化库,提供更高级别的图表和样式࿰…...
NIFI实现数据库数据增量同步
说明 nifi版本:1.23.2(docker镜像) 需求背景 将数据库中的数据同步到另一个数据库中,要求对于新增的数据和历史有修改的数据进行增量同步 模拟数据 建表语句 源数据库和目标数据库结构要保持一致,这样可以避免后…...
大连网站制作.net/全面落实疫情防控优化措施
想要在uniapp中使用echarts,需要进行以下操作步骤: 一:操作步骤 1.定义存放图表的div; 2.引入echarts.min,js,可以去echarts的官网“在线定制”; 3.在需要使用echarts的图表vue页面引入echarts.min.js; 4.开始使用echarts绘制图表,…...
免费视频网站素材/宁波网络推广
1. The getter xxx was called on null. String判断空值时,null写在前面。 好吧,如果写过Android的同学应该是没问题,但是作为C#的童鞋来讲,真的是不知道 如: var image"12345";if(null ! image && …...
国外色情网站app/谷歌关键词查询工具
更快的优化器 动量优化 梯度下降通过直接减去权重的成本函数J(θ)J(\theta)J(θ)的梯度乘以学习率(ΔθJ(θ)\Delta _{\theta}J(\theta)ΔθJ(θ))来更新权重 θ\thetaθ。它不关系较早的梯度是什么。动量优化:在每次迭代时,它…...
四川泸州做网站的公司有哪些/数字营销策划
1. 加载DOM $(document).ready(function(){ //code }); //简写 $(function(){ }) 与window.onload的区别:jquery的ready函数在DOM树加载完后即可执行,而window.onload则必须等待网页中所有元素加载完后才执行。window.onload只能执行一次,而r…...
代码网站怎么做的/百度指数怎么看地域数据
五、 部署Exchange 2013 CAS负载均衡高可用 现在的Exchange 2013中客户端的指向的是用户邮箱唯一的GUID。CAS服务器基于Active Directory站点查找这个GUID,然后找到正确的邮箱服务器目标。因此不再需要使用CAS Array对象。这里只需部署NLB高可用。 5.1. 创建NLB群集…...
做毕业设计资料网站/web网页模板
ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘 开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式, 它将WinForm开发模式的快捷便利的优点移植到了Web开发上, 我们只要学会三步&…...