当前位置: 首页 > news >正文

【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 2:基础知识

目录

  • 1 预热
    • 1.1 记号
    • 1.2 分类器计算过载问题
  • 2 多头编码(MHE)
    • 2.1 标签分解
    • 2.2 多头组合(Multi-Head Combination)

论文:Multi-Head Encoding for Extreme Label Classification
作者:Daojun Liang, Haixia Zhang, Dongfeng Yuan and Minggao Zhang
单位:山东大学
代码:https://github.com/Anoise/MHE

论文地址:Online,ArXiv,GItHub

背景动机参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 1
基础知识参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 2
算法实现参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 3
表示能力参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 4
实验结果参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 5
无需预处理见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 6

请各位同学给我点赞,激励我创作更好、更多、更优质的内容!^_^

关注微信公众号,获取更多资讯
在这里插入图片描述

1 预热

1.1 记号

为了表示简单,变量使用不同的字体表示:1)常量用大写字母表示,例如, Y i Y_i Yi是代表第 i i i个样本的类别的常量, C C C表示类别的总数。2)向量用粗体大写字母表示,例如, Y \bm Y Y Y i Y_i Yi的标签集, O \bm{O} O是头部的输出。3)矩阵用书法大写字母表示,例如 W \mathcal{W} W表示分类器的权重, F \mathcal{F} F表示特征集的矩阵 F \bm F F。4)张量也用大写字母表示,上标表示其顺序,例如, Y 1 , ⋯ , H \mathcal{Y}^{1,\cdots, H} Y1,,H表示$H阶张量。通过上面的符号,读者可以很容易地区分每个变量的形状。
在这里插入图片描述

图 1 :深度神经网络由三部分组成:输入、主干和分类器。在多头编码中,在训练期间将标签分解到多头分类器的输出上,并在测试中组合输出以获得预测标签。

1.2 分类器计算过载问题

本文所考虑的深度神经网络如图1所示,由输入、主干和分类器三部分组成。假设给定的样本-标签对是 { X i , Y i } i = 1 N \{\bm{X}_i, Y_i\}_{i=1}^N {Xi,Yi}i=1N,其中 X ∈ R ∣ X ∣ × N \bm{X} \in \mathbb{R}^{|\bm{X}|\times N} XRX×N Y ∈ R C × 1 \bm{Y} \in \mathbb{R}^{C \times 1} YRC×1分别是样本集和标签集。设 Y ˉ i \bar{\bm Y}_i Yˉi表示 Y i Y_i Yi的编码(矢量化)标签。主干主要包括多层非线性神经元,记为 N e t Net Net。将 N e t Net Net的特征输出记为 F \bm F F,将 F \bm{F} F通过权值 W \mathcal{W} W投影到 R C × 1 \mathbb{R}^{C\times 1} RC×1的部分就是分类头。输出 O \bm O O Y ˉ \bar{\bm Y} Yˉ之间的损失记为 L \mathcal{L} L。因此,单标签网络的转发过程可表示为
F i = N e t ( X i ) , ( 1 ) O i = W F i + B , ( 2 ) L = − ∑ i N Y ˉ i T l o g ( σ ( O i ) ) , ( 3 ) \bm{F}_i =Net(\bm{X}_i), \qquad (1) \\ \bm{O}_i =\mathcal{W}\bm{F}_i+\bm{B}, \qquad (2) \\ \mathcal{L} = - \sum_i^N \bar{\bm{Y}}_i^T log(\sigma(\bm{O}_i)), \qquad (3) Fi=Net(Xi),(1)Oi=WFi+B,(2)L=iNYˉiTlog(σ(Oi)),(3)
其中 σ \sigma σ为softmax函数, B ∈ R C × 1 \bm{B} \in \mathbb{R}^{C\times 1} BRC×1为输出层的偏置。对于XLC任务,等式2中 O \bm{O} O的长度必须等于 C C C,因为 ∣ O ∣ ≫ ∣ F ∣ |\bm{O}|\gg |\bm{F}| OF\footnote[1]{ ∣ F ∣ |\bm {F}| F 一般在1K左右。}会导致计算过重,从而导致分类器计算过载问题(CCOP)。

2 多头编码(MHE)

2.1 标签分解

MHE中的标签分解包括将极端标签分解为多个易于处理的局部标签,然后将这些局部标签用于训练神经网络。为了更好地理解这个过程,本文可以将极值标签 Y i Y_i Yi概念化为高维空间中的一个点。然后,将其正交坐标分量作为局部标记,训练多头神经网络。这个过程通过重用坐标位置减少了标签的编码长度,从而几何上减少了分类器的计算负荷。
在这里插入图片描述

图2:使用 MHE 的多头分类器的训练和测试过程。 (a) 在训练过程中,全局标签被分解为多个局部标签。 (b) 在测试期间,MHE 以与训练相反的方式工作。 © 用于测试的 MHE 的等效形式结合了多头分类器的局部预测以获得全局预测。注意,红色虚线框标注的操作是为了便于理解而使用的,并不是必须的。

标签分解过程的关键是如何将 Y i Y_i Yi映射到 H H H维空间。本文提出的解决方案是将 Y i Y_i Yi视为一个单热编码向量 I Y i \mathbb{I}_{Y_i} IYi,如图2-a所示。然后将其重塑为一个 H H H维张量 Y ˉ i 1 , . . . , H \bar{\mathcal{Y}}_i^{1,...,H} Yˉi1,...,H。请注意,由于 I Y i \mathbb{I}_{Y_i} IYi是一个单热向量,因此 Y ˉ i 1 , . . . , H \bar{\mathcal{Y}}_i^{1,...,H} Yˉi1,...,H及其组件 { Y ˉ i h } h = 1 H \{\bar{\bm Y}_i^h\}_{h=1}^H {Yˉih}h=1H都是单热编码的。因此, Y i Y_i Yi的分解过程可表示为
I Y i = Y ˉ i 1 ⊗ Y ˉ i 2 ⊗ ⋯ ⊗ Y ˉ i H , ( 4 ) \mathbb{I}_{Y_i} = \bar{\bm Y}_i^1 \otimes \bar{\bm Y}_i^2 \otimes \cdots \otimes \bar{\bm Y}_i^H, \qquad (4) IYi=Yˉi1Yˉi2YˉiH,(4)
其中 ⊗ \otimes 是克罗内克产品。详细示例请参见附录1。等式4表示将极值标签分解为 H H H个短单热向量的乘积,每个短单热向量的近似长度为 C H \sqrt[H]{C} HC 。因此,为每个头部分配每个局部标签来训练网络,将几何上减少分类器中的参数数量,从而解决CCOP问题。

2.2 多头组合(Multi-Head Combination)

上一小节展示了如何将极端标签分解成多个短的局部标签来训练模型。本小节展示了如何在测试期间组合多头的输出以恢复全局预测标签 Y ~ i \tilde{Y}_i Y~i(原始极端标签)。

实际上,测试过程中使用的组合运算是训练过程中使用的分解运算的逆运算。如图2-b所示,如果将每个头部的输出 O i h \bm{O}_i^h Oih视为一个坐标分量,则可以生成 { O i h } h = 1 H \{\bm{O}_i^h\}_{h=1}^H {Oih}h=1H,以形成 H H H维空间中一个点的坐标。然后,通过将该点投影到整数轴上获得预测标签 Y ~ i \tilde{Y}_i Y~i
Y ~ i = Λ ( O ~ i ) = Λ ( O i 1 ⊗ O i 2 ⊗ ⋯ ⊗ O i H ) , ( 5 ) \tilde{Y}_i = \varLambda (\tilde{\bm O}_i) = \varLambda(\bm {O}_i^1 \otimes \bm {O}_i^2 \otimes \cdots \otimes \bm {O}_i^H), \qquad (5) Y~i=Λ(O~i)=Λ(Oi1Oi2OiH),(5)
其中 Λ \varLambda Λ是Argmax操作。虽然 Y ~ i \tilde{Y}_i Y~i可以通过Eq. 5得到,但是 O ~ i \tilde{\bm O}_i O~i ∣ O ~ i ∣ = C |\tilde{\bm O}_i|=C O~i=C)和 H − 1 H-1 H1的超长Kronecker产品操作将消耗巨大的计算和存储资源。因此,有必要简化式Eq. 5中的推理过程。

一个理想的解决方案是利用局部预测标签直接计算全局预测标签,即
Y ^ i = Λ ( Y ˉ i ) = Λ ( I Y ~ i 1 ⊗ I Y ~ i 2 ⊗ ⋯ ⊗ I Y ~ i H ) = Λ ( I Λ ( O i 1 ) ⊗ I Λ ( O i 2 ) ⊗ ⋯ ⊗ I Λ ( O i H ) ) , ( 6 ) \hat{Y}_i = \varLambda(\bar{\bm Y}_i) = \varLambda( \mathbb{I}_{\tilde{Y}_i^1} \otimes \mathbb{I}_{\tilde{Y}_i^2} \otimes \cdots \otimes \mathbb{I}_{\tilde{Y}_i^H}) \\ = \varLambda( \mathbb{I}_{\varLambda(\bm{O}_i^1)} \otimes \mathbb{I}_{\varLambda(\bm{O}_i^2)} \otimes \cdots \otimes \mathbb{I}_{\varLambda(\bm{O}_i^H)}) , \qquad (6) Y^i=Λ(Yˉi)=Λ(IY~i1IY~i2IY~iH)=Λ(IΛ(Oi1)IΛ(Oi2)IΛ(OiH)),(6)
其中 I Λ ( ⋅ ) \mathbb{I}_{\varLambda(\cdot)} IΛ()是矢量执行Argmax后的OHE。可以看出,等式6中的 Y ~ i \tilde{Y}_i Y~i H − 1 H-1 H1单热编码向量的乘积,可以从局部标签及其长度计算得到
Y ~ i = f ( { Y ~ i h , ∣ O h ∣ } h = 1 H ) , ( 7 ) \tilde{Y}_i = f (\{\tilde{Y}_i^h, |O^h|\}_{h=1}^H) , \qquad (7) Y~i=f({Y~ih,Oh}h=1H),(7)
其中 f f f是待确定的函数。

虽然Eq. 6可以通过结合局部预测标签计算出全局预测标签,但它是否等同于Eq. 5 ?也就是说, Y ^ i \hat{Y}_i Y^i是否等于 Y ~ i \tilde{Y}_i Y~i ?实际上,等式6和等式5中的组合过程是等价的,可以用下面的定理来证明

Theorem 1: 对于多头分类器的输出 { O h } h = 1 H \{\bm{O}^h\}_{h=1}^H {Oh}h=1H,本文有
Y ~ = Λ ( O 1 ⊗ O 2 ⊗ ⋯ ⊗ O H ) = Λ ( I Λ ( O 1 ) ⊗ I Λ ( O 2 ) ⊗ ⋯ ⊗ I Λ ( O H ) ) . ( 8 ) \tilde{Y} = \varLambda(\bm{O}^1 \otimes \bm{O}^2 \otimes \cdots \otimes \bm{O}^H) \nonumber \\ = \varLambda(\mathbb{I}_{\varLambda(\bm{O}^1)} \otimes \mathbb{I}_{\varLambda(\bm{O}^2)} \otimes \cdots \otimes \mathbb{I}_{\varLambda(\bm{O}^H)}). \qquad (8) Y~=Λ(O1O2OH)=Λ(IΛ(O1)IΛ(O2)IΛ(OH)).(8)
定理1}的证明在附录A-1中给出。定理1证明了等式5和6是等价的,具有相同的表示能力。由于Eq. 6可以简化计算过程,因此使用MHE加速模型的速度是至关重要的。

此外,如果使用Eq. 5中带有MHE的多头分类器的输出 O ~ \tilde{\bm O} O~来近似Eq. 2中带有OHE的普通分类器的输出 O \bm O O,本文有以下推论。
Corollary 1: 如果 O ≈ O ~ = O 1 ⊗ O 2 ⊗ ⋯ ⊗ O H \bm{O} \approx \tilde{\bm O} = \bm{O}^1 \otimes \bm{O}^2 \otimes \cdots \otimes \bm{O}^H OO~=O1O2OH,本文有
Λ ( O ) = Λ ( I Λ ( O 1 ) ⊗ I Λ ( O 2 ) ⊗ ⋯ ⊗ I Λ ( O H ) ) . ( 9 ) \varLambda(\bm{O}) = \varLambda(\mathbb{I}_{\varLambda(\bm{O}^1)} \otimes \mathbb{I}_{\varLambda(\bm{O}^2)} \otimes \cdots \otimes \mathbb{I}_{\varLambda(\bm{O}^H)}). \qquad (9) Λ(O)=Λ(IΛ(O1)IΛ(O2)IΛ(OH)).(9)
推论1的证明见附录A-2。这个推论断言,如果原始分类器的输出被分解为多头分类器输出的近似值,那么两个分类器的预测是一致的。

背景动机参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 1
基础知识参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 2
算法实现参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 3
表示能力参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 4
实验结果参见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 5
无需预处理见 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 6

相关文章:

【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 2:基础知识

目录 1 预热1.1 记号1.2 分类器计算过载问题 2 多头编码(MHE)2.1 标签分解2.2 多头组合(Multi-Head Combination) 论文:Multi-Head Encoding for Extreme Label Classification 作者:Daojun Liang, Haixia …...

Flink使用

Window下启动支持 下载或复制老版本的放在bin目录下即可; flink.bat echo off setlocalSET bin%~dp0 SET FLINK_HOME%bin%.. SET FLINK_LIB_DIR%FLINK_HOME%\lib SET FLINK_PLUGINS_DIR%FLINK_HOME%\pluginsSET JVM_ARGS-Xmx512mSET FLINK_JM_CLASSPATH%FLINK_LI…...

一种可复用的AI提效方案:AI点灯

在当今飞速发展的时代,AI技术正不断渗透到我们生活的各个层面,深刻改变着传统的工作方式和生活模式。面对这一重大变革,我们不能被动观望或抗拒,而应积极拥抱AI,将其作为成长的助力。只有与AI协同发展,才能…...

Django 模型

Django 模型 Django 模型是 Django 框架的核心组件之一,它用于定义应用程序的数据结构。在 Django 中,模型是 Python 类,通常继承自 django.db.models.Model。每个模型类代表数据库中的一个表,模型类的属性对应表中的字段。 1. 创建模型 创建 Django 模型非常简单。首先…...

【MySQL 探索者日志 】第二弹 —— 数据库基础

MySQL系列学习笔记: MySQL探索者日志__Zwy的博客-CSDN博客 各位于晏,亦菲们,请点赞关注! 我的个人主页: _Zwy-CSDN博客 目录 1、MySQL服务器,数据库,表关系 2、MySQL登录连接服务器 3、MyS…...

【51单片机-零基础chapter1】

安装软件(配套的有,不多赘述) 1.管理员身份运行keil和破解软件kegen 将CID代码复制粘贴到 一定要管理员方式,不然会error 插入板子 我的电脑,管理 1.如果是拯救者,查看端口,如果没有则显示隐藏 2.苹果不知道,好像不可以 3.其他电脑在"其他设备找" (注:本人在校已…...

stm32的掉电检测机制——PVD

有时在一些应用中,我们需要检测系统是否掉电了,或者要在掉电的瞬间需要做一些处理。 STM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。 STM32就有这样的掉电检测机制——PVD(Programmable Voltage Detecter),即可编程电压检…...

电脑steam api dll缺失了怎么办?

电脑故障解析与自救指南:Steam API DLL缺失问题的全面解析 在软件开发与电脑维护的广阔天地里,我们时常会遇到各种各样的系统报错与文件问题,其中“Steam API DLL缺失”便是让不少游戏爱好者和游戏开发者头疼的难题之一。作为一名深耕软件开…...

Kotlin 协程基础知识总结七 —— Flow 与 Jetpack Paging3

专题分为五大块: Paging3 的结构组成Flow 与 Paging3下拉刷新上拉刷新离奇 Bug上游数据缓存 Demo 会还原开发迭代的过程,不会直接一步到位。 1、Paging3 加载数据流程 (P105)Paging3 的简介详情可参考官方文档 Paging 库概览&…...

使用JMeter玩转tidb压测

作者: du拉松 原文来源: https://tidb.net/blog/3f1ada39 一、前言 tidb是mysql协议的,所以在使用过程中使用tidb的相关工具连接即可。因为jmeter是java开发的相关工具,直接使用mysql的jdbc驱动包即可。 二、linux下安装jmet…...

音视频入门基础:MPEG2-PS专题(3)——MPEG2-PS格式简介

一、引言 本文对MPEG2-PS格式进行简介。 进行简介之前,请各位先下载MPEG2-PS的官方文档。ITU-T和ISO/IEC都分别提供MPEG2-PS的官方文档。但是ITU提供的文档是免费的,ISO/IEC是付费的,所以我们主要阅读ITU提供的官方文档,比如较新…...

ETCD渗透利用指南

目录 未指定使用put操作报错 未指定操作版本使用get报错 首先etcd分为两个版本v2和v3,不同的API结果无论是访问URL还是使用etcdctl进行通信,都会导致问题,例如使用etcdctl和v3进行通信,如果没有实名ETCDCTL_API3指定API版本会直接…...

Python安装(新手详细版)

前言 第一次接触Python,可能是爬虫或者是信息AI开发的小朋友,都说Python 语言简单,那么多学一些总是有好处的,下面从一个完全不懂的Python 的小白来安装Python 等一系列工作的记录,并且遇到的问题也会写出&#xff0c…...

SQL 中复杂 CASE WHEN 嵌套逻辑优化

目标:优化复杂的 CASE WHEN 逻辑,提升 SQL 语句的可读性与执行效率,减少多层嵌套带来的复杂性。 1. CASE WHEN 的常见问题 嵌套过深:多个条件判断嵌套,难以阅读和维护。重复逻辑:相似逻辑在多个分支中重复…...

【专题】2024年出口跨境电商促销趋势白皮书报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38722 在当今全球化加速演进、数字经济蓬勃发展的大背景下,跨境电商行业正以前所未有的态势重塑国际贸易格局,成为各方瞩目的焦点领域。 根据亚马逊发布的《2024年出口跨境电商促销趋势白皮书》,…...

C# 设计模式(结构型模式):代理模式

C# 设计模式(结构型模式):代理模式 在软件开发中,有时我们需要通过某种方式间接地访问一个对象,这时就可以使用代理模式(Proxy Pattern)。代理模式通过引入一个代理对象来控制对目标对象的访问…...

单片机复位电路基本理解教程文章·含上拉电阻理解电容开路理解!!!

目录 常见复位电路种类 复位电路电阻上拉理解 电容储能断路理解 ​​​​​​​ ​​​​​​​ 编写不易,仅供学习,请勿搬运,感谢理解 常见元器件驱动电路文章专栏连接 LM7805系列降压芯片驱动电路降压芯片驱动电路详解-…...

深入浅出:事件监听中的适配器模式

1. 为什么需要适配器模式? 在Java的事件监听器设计中,许多接口有多个抽象方法。例如,MouseListener 接口有 5 个方法,KeyListener 接口有 3 个方法。如果我们只关心其中的一个方法(例如,鼠标点击事件&…...

常用LabVIEW算法及应用

在LabVIEW项目中,算法的应用是提高系统性能、实现特定功能、完成复杂任务的核心。LabVIEW作为一种图形化编程语言,允许用户通过直观的图形编程来实现各种复杂的算法。这些算法广泛应用于控制系统、数据采集、信号处理、图像处理、机器学习等领域。了解常…...

VTK知识学习(28)-区域提取

1、感兴趣区域(Volume ofInterest,VOI) 它是图像内部的一块子区域。在VTK中,vtkExtractVOI 类可根据用户指定的区域范围提取子图像。该Filter 的输入和输出都是一个vtkImageData,因此其结果可以直接作为图像保存。 代码: private void Test…...

基于Spring Boot + Vue3实现的在线汽车保养维修预约管理系统源码+文档

前言 基于Spring Boot Vue3实现的在线汽车保养维修预约管理系统是一种前后端分离架构的应用,它结合了Java后端开发框架Spring Boot和现代JavaScript前端框架Vue.js 3.0的优势。这样的系统可以为汽车服务站提供一个高效的平台来管理客户的预约请求 技术选型 系统…...

CAN201 Introduction to Networking(计算机网络)Pt.4 链路层

文章目录 5. Link Layer(链路层)5.1 Services of link layer(链路层的服务)5.2 Error detection and correction(错误检测和纠正)5.2.1 Partity Checks(奇偶检验)5.2.2 Checksum&…...

Python视频处理:噪声矩阵与并行计算的完美融合

噪声级别对视频质量有显著的影响,主要体现在以下几个方面: 1. 视觉质量 低噪声级别:当噪声级别较低时,视频的视觉质量较好。噪声对图像细节的干扰较小,画面看起来较为清晰和自然。观众可以更容易地识别图像中的细节和…...

wordpress开发之实现使用第三方库qrcode-generator生成二维码并上传和展示

文章目录 一、需求二、技术实现 - 利用qrcode-generator库三、代码实现 一、需求 客户的需求是能将特定的url生成二维码,以便将二维码分享或贴到合同纸上给他的客户扫描查看信息。 这个url包含的内容类似于如下格式: https://www.example.com/contrac…...

计算机网络——物理层

一、通信基础 1.相关术语: • 数据(data)——运送消息的实体。 • 信号(signal)——数据的电气的或电磁的表现。 • “模拟的”(analogous)——代表消息的参数的取值是连续的。 • “数字的”(digital)——代表消息的参数的取值是离散的。 • 码元(code)——在…...

网络IP协议

IP(Internet Protocol,网际协议)是TCP/IP协议族中重要的协议,主要负责将数据包发送给目标主机。IP相当于OSI(图1)的第三层网络层。网络层的主要作用是失陷终端节点之间的通信。这种终端节点之间的通信也叫点…...

Unity UGUI使用技巧与经验总结(不定期更新)

Text自动缩放参考连接: Unity -UGUI中Text文本框的自动调整,字体大小的自适应调节_unity添加的字体大小锁定-CSDN博客 Toggle按钮选择时,显示对应的UI界面: 为Toggle组件的On Value Change事件添加对需要显示的对象的SetActive…...

Tailwind CSS 使用简介

参考网站安装 - Tailwind CSS 中文网 号称是开始使用 Tailwind CSS 通过 npm 安装 tailwindcss,并创建你的 tailwind.config.js 文件。 npm install -D tailwindcss npx tailwindcss init 在 tailwind.config.js 文件中添加所有模板文件的路径。 /** type {im…...

嵌入式linux中socket控制与实现

一、概述 1、首先网络,一看到这个词,我们就会想到IP地址和端口号,那IP地址和端口各有什么作用呢? (1)IP地址如身份证一样,是标识的电脑的,一台电脑只有一个IP地址。 (2)端口提供了一种访问通道,服务器一般都是通过知名端口号来识别某个服务。例如,对于每个TCP/IP实…...

Go语言的 的数据封装(Data Encapsulation)核心知识

Go语言的数据封装(Data Encapsulation)核心知识 引言 在现代编程语言中,数据封装是一个重要的编程概念。它不仅帮助开发者管理复杂性,还提高了代码的可维护性和安全性。Go语言(Golang)作为一种注重简洁性…...

25/1/5 算法笔记<强化学习> MPC,交叉熵法,PETS算法

MPC 一个棋手下棋,会根据当前的局势来推演落子几步可能发生的局势,然后选择局势最好的一种情况来决定当前落子位置。 模型预测控制方法MPC,就是这样一种迭代的、基于模型的控制方法。值得注意的是MPC中不存在一个显示的策略。具体而言就是MPC在每次采取…...

最新版Chrome浏览器加载ActiveX控件之CFCA安全输入控件

背景 CFCA安全输入控件用于保证用户在浏览器、桌面客户端、移动客户端中输入信息的安全性,防止运行在用户系统上的病毒、木马等恶意程序入侵窃取用户输入的敏感信息。确保用户输入、本地缓存、网络传输整个流程中,输入的敏感信息不被窃取。广泛应用于银行…...

vue 项目集成 electron 和 electron 打包及环境配置

vue electron 开发桌面端应用 安装 electron npm i electron -D记得加上-D,electron 需添加到devDependencies,如果添加到dependencies后面运行可能会报错 根目录创建electron文件夹,在electron文件夹创建main.js(或者backgrou…...

计算机网络--UDP和TCP课后习题

【5-05】 试举例说明有些应用程序愿意采用不可靠的UDP, 而不愿意采用可靠的TCP。 解答: 这可能有以下几种情况。 首先,在互联网上传输实时数据的分组时,有可能会出现差错甚至丢失。如果利用 TCP 协议对这些出错或丢失的分组进行重传&…...

【算法不挂科】算法期末考试题库(带解析)【选择题53道&填空题36道&算法填空题7道&问答题33道】

前言 大家好吖,欢迎来到 YY 滴算法不挂科系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 下面是相关传送门 【算法不挂科】算法期末考试题库1(带解析)【选择题53道&填空题36道&算法填空题7道&a…...

Java+maven+selenium3+testng 自动化测试环境IDEA

软件测试资料领取:[内部资源] 想拿年薪40W的软件测试人员,这份资料必须领取~ 软件测试面试刷题工具领取:软件测试面试刷题【800道面试题答案免费刷】 idea 、java环境变量jdk maven安装及环境变量配置这里就不多说了,网上有很多…...

【踩坑指南2.0 2025最新】Scala中如何在命令行传入参数以运行主函数

这个地方基本没有任何文档记录,在学习的过程中屡屡碰壁,因此记录一下这部分的内容,懒得看可以直接跳到总结看结论。 踩坑步骤 首先来看看书上让我们怎么写: //main.scala object Start {def main(args:Array[String]) {try {v…...

vue3-watchEffect异步依赖收集

当 b 更新时 a 并不会更新&#xff0c;因为watchEffect的依赖收集在该案例中停止于await asyncFn()&#xff0c;也就是只会收集同步代码的依赖&#xff0c;await 之后的异步代码的依赖并不会收集到 <template> <div>a: {{ a }} <br>b: {{ b }} <br>&l…...

【Go研究】Go语言脚本化的可行性——yaegi项目体验

0x01 背景——云计算中脚本化困境 作为云基础设施管理中&#xff0c;大量需要跟文件系统、容器等相关的操作&#xff0c;这些操作实现通常用脚本来实现。 现在探讨下&#xff0c;这些脚本为什么一定要用脚本语言来实现&#xff0c;以及目前实现中的常见的问题。 常见的两个场…...

Genome Research | 俄亥俄州立于忠堂组-结合深度学习与蛋白质数据库系统探究反刍动物真核微生物...

结合深度学习与蛋白质数据库系统探究反刍动物真核微生物 Probing the eukaryotic microbes of ruminants with a deep-learning classifier and comprehensive protein databases 期刊&#xff1a;Genome Research DOI&#xff1a;https://doi.org/10.1101/gr.279825.124 第一作…...

centos7yum安装mysql5.7

1、安装mysql5.7 (1) 正常安装 [rootBrianZhu /]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm [rootBrianZhu /]# yum -y install mysql57-community-release-el7-10.noarch.rpm [rootBrianZhu /]# yum -y install mysql-community-se…...

JavaScript系列(8)-- Array高级操作

JavaScript Array高级操作 &#x1f4da; 在前七篇文章中&#xff0c;我们探讨了JavaScript的语言特性、ECMAScript标准、引擎工作原理、数值类型、字符串处理、Symbol类型和Object高级特性。今天&#xff0c;让我们深入了解JavaScript中的Array高级操作。数组是最常用的数据结…...

蓝牙架构介绍

架构1&#xff1a;hostcontroller双芯片标准架构 这个标准把蓝牙协议栈分成host和controller两部分&#xff0c;其中host跑在AP上&#xff0c;controller跑在蓝牙模块上&#xff0c;两者之间通过HCI协议进行通信&#xff0c;AP芯片厂商一般会直接采用开源的Bluez来实现Host功能…...

青少年编程与数学 02-006 前端开发框架VUE 08课题、列表渲染

青少年编程与数学 02-006 前端开发框架VUE 08课题、列表渲染 一、列表渲染v-for 指令:key 属性遍历对象响应式更新列表渲染的作用 二、应用示例项目结构public/index.htmlsrc/components/TodoApp.vuesrc/main.jspackage.json构建和运行项目 课题摘要:本文介绍了Vue.js中的列表渲…...

12.3【hardware][day3]

关于使用硬件 DSP 资源实现乘法的含义 在 Xilinx 7 Series FPGA&#xff08;现场可编程门阵列&#xff09;中&#xff0c;乘法运算可以通过专门的数字信号处理&#xff08;DSP&#xff09;硬件资源来完成。当使用 Verilog 语言编写代码进行乘法运算时&#xff0c;直接使用乘号&…...

降维算法之PCA(PrincipalComponent Analysis,主成分分析)

降维是指在保留数据特征的前提下&#xff0c;以少量的变量表示有许多变量的数据&#xff0c;这有助于降低多变量数据分析的复杂度。比如在分析有 100 个变量的数据时&#xff0c;与其直接分析数据&#xff0c;不如使用 5 个变量表示数据&#xff0c;这样可以使后续分析比较容易…...

【JVM】总结篇-类的加载篇之 类的加载器 和ClassLoader分析

文章目录 类的加载器ClassLoader自定义类加载器双亲委派机制概念源码分析优势劣势如何打破Tomcat 沙箱安全机制JDK9 双亲委派机制变化 类的加载器 获得当前类的ClassLoader clazz.getClassLoader() 获得当前线程上下文的ClassLoader Thread.currentThread().getContextClassLoa…...

Android:文件管理:打开文件意图

三步走&#xff1a; 一、先在AndroidManifest.xml声明provider&#xff1a; <providerandroid:name"androidx.core.content.FileProvider"android:authorities"${applicationId}.FileProvider"android:exported"false"android:grantUriPermi…...

《计算机网络A》单选题(详解)

《计算机网络A》单选题-复习题库 1、计算机网络最突出的优点是&#xff08; D &#xff09; A、存储容量大 B、将计算机技术与通信技术相结合 C、集中计算 D、资源共享 解析&#xff1a;算机网络最突出的优点是 D、资源共享。通过计算机网络&…...

【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus

在Spring Boot 3.0中&#xff0c;你可以使用MyBatis Plus来简化数据库操作。以下是一个基本的集成示例&#xff1a; 1.添加依赖到你的pom.xml&#xff1a; <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.…...