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

信息检索(57):MINIMIZING FLOPS TO LEARN EFFICIENT SPARSE REPRESENTATIONS

MINIMIZING FLOPS TO LEARN EFFICIENT SPARSE REPRESENTATIONS

  • 摘要
  • 1 引言
  • 2 相关工作
  • 3 预期 FLOPS 次数
  • 4 我们的方法
  • 5 实验
  • 6 结论


发布时间(2020)


最小化 Flop 来学习高效的稀疏表示

摘要

1)学习高维稀疏表示
2)FLOP 集成到损失函数作为正则化项
3)相比 l1 损失更好
倒排索引浮点运算的数量 // 非零值的均匀分布

深度表示学习已成为视觉搜索、推荐和识别领域最广泛采用的方法之一。然而,从大型数据库中检索此类表示在计算上具有挑战性。基于学习紧凑表示的近似方法已被广泛用于解决此问题,例如局部敏感哈希、乘积量化和 PCA。在这项工作中,与学习紧凑表示相反,我们提出学习高维和稀疏表示,这些表示具有与密集嵌入相似的表示容量,同时由于稀疏矩阵乘法运算比密集乘法快得多而更高效。根据关键见解,如果非零项在维度上均匀分布,则运算次数会随着嵌入的稀疏性二次减少,我们提出了一种新方法来学习这种分布式稀疏嵌入,该方法通过使用精心构建的正则化函数直接最小化检索过程中发生的浮点运算 (FLOP) 数量的连续松弛。我们的实验表明,我们的方法与其他基线相比具有竞争力,并且在实际数据集上产生类似或更好的速度与准确度权衡。

1 引言

使用深度神经网络 (DNN) 学习语义表示现已成为视觉搜索 (Jing et al, 2015; Hadi Kiapour et al, 2015)、语义文本匹配 (Neculoiu et al, 2016)、单样本分类 (Koch et al, 2015)、聚类 (Oh Song et al, 2017) 和推荐 (Shankar et al, 2017) 等应用的一个基本方面。然而,从 DNN 生成的高维密集嵌入对于在具有数百万个实例的大规模问题中执行最近邻搜索提出了计算挑战。特别是,当嵌入维度很高时,评估任何查询与大型数据库中所有实例的距离成本很高,因此难以在不牺牲准确性的情况下进行有效搜索。与 SIFT (Lowe, 2004) 等手工制作的特征相比,使用 DNN 生成的表示通常具有更高的维度,而且是密集的。密集特征的关键警告是,与词袋特征不同,它们无法通过倒排索引进行有效搜索,也无法进行近似。

由于在实践中,高维度上的精确搜索成本过高(Wang,2011),因此人们通常不得不牺牲准确性来换取效率,而采用近似方法。因此,解决高效近似最近邻搜索 (NNS)(Jegou 等人,2011)或最大内积搜索 (MIPS)(Shrivastava 和 Li,2014)的问题是一个活跃的研究领域,我们将在相关工作部分简要回顾一下。大多数方法(Charikar,2002;Jegou 等人,2011)旨在学习保留距离信息的紧凑低维表示。

虽然在学习紧凑表示方面已经有大量研究,但学习稀疏的高维表示直到最近才开始得到解决(Jeong 和 Song,2018;Cao 等人,2018)。作为一个开创性的例子,Jeong 和 Song(2018)提出了一种端到端方法来学习稀疏和高维哈希,与密集嵌入相比,在基准数据集上的检索时间显著加快。这种方法也从生物学的角度(Li 等人,2018)出发,与果蝇的嗅觉回路有关,从而表明使用更高维度进行哈希的可能性,而不是降低维度

同样,在这项工作中,我们建议学习稀疏的高维嵌入,因此使用稀疏矩阵乘法运算可以有效地检索。与通常会导致表示能力下降的紧凑低维 ANN 式表示相比,我们的高维稀疏嵌入的一个关键方面是它们可以具有与初始密集嵌入相同的表示容量。我们方法背后的核心思想受到两个关键观察的启发:(i)检索平均非零值比例为 p 的 d(高)维稀疏嵌入可以加快 1=p 倍。(ii)通过确保非零值均匀分布在所有维度上,可以将速度进一步提高到 1=p2 倍。 这表明,仅靠稀疏性不足以确保最大加速;非零值的分布也起着重要作用。这促使我们考虑稀疏性对使用倒排索引进行检索所需的浮点运算 (FLOP) 数量的影响。 我们提出了一个嵌入向量惩罚函数,它是 FLOP 的精确数量的连续放松,并鼓励非零值在各个维度上均匀分布。

我们将我们的方法应用于学习面部图像嵌入的大规模度量学习问题。我们的训练损失包括度量学习(Weinberger 和 Saul,2009)损失,旨在学习模仿所需度量的嵌入,以及 FLOPs 损失以最小化操作次数。我们在 Megaface 数据集(Kemelmacher-Shlizerman 等人,2016)上对我们的方法进行了实证评估,并表明我们提出的方法成功地学习了高维稀疏嵌入,速度提高了几个数量级。我们将我们的方法与多个基线进行了比较,证明了速度与准确度之间的权衡有所改善或相似。

本文的其余部分组织如下。在第 3 节中,我们分析了预期的 FLOP 数量,并推导出了其精确表达式。在第 4 节中,我们推导出可用作正则化器的连续松弛,并使用梯度下降进行优化。我们还为我们的松弛提供了一些分析依据。然后,在第 5 节中,我们在一个大型度量学习任务上比较了我们的方法,结果显示与基线相比,速度-准确度权衡有所改善。

2 相关工作

学习紧凑表示,ANN
对于从深度神经网络中学习到的高维密集嵌入,精确检索前 k 个最近邻居在实践中成本很高,从业者通常求助于近似最近邻居 (ANN) 来实现高效检索。 ANN 的流行方法包括依赖于随机投影的局部敏感哈希 (LSH) (Gionis 等,1999;Andoni 等,2015;Raginsky 和 ​​Lazebnik,2009)、基于通过在数据中查找聚类来构建有效搜索图的可导航小世界图 (NSW) (Malkov 等,2014) 和分层 NSW (HNSW) (Malkov 和 Yashunin,2018)、将原始空间分解为低维子空间的笛卡尔积并分别量化每个子空间的乘积量化 (PQ) (Ge 等,2013;Jegou 等,2011) 方法,以及谱哈希 (Weiss 等,2009),它涉及计算最佳二进制哈希的 NP 难题,该问题被放宽为连续值哈希,相似矩阵的谱。总体而言,为了紧凑表示并加快查询时间,这些方法中的大多数使用各种精心选择的数据结构,例如哈希(Neyshabur 和 Srebro,2015;Wang 等人,2018)、局部敏感哈希(Andoni 等人,2015)、倒排文件结构(Jegou 等人,2011;Baranchuk 等人,2018)、树(Ram 和 Gray,2012)、聚类(Auvolat 等人,2015)、量化草图(Jegou 等人,2011;Ning 等人,2016),以及基于主成分分析和 t-SNE 的降维(Maaten 和 Hinton,2008)。

端到端ANN
端到端学习 ANN 结构是最近越来越流行的另一项工作。Norouzi 等人(2012 年)提出通过最小化基于边距的三重态损失来学习汉明度量的二进制表示。Erin Liong 等人(2015 年)使用深度神经网络的有符号输出作为哈希,同时对哈希位施加独立性和正交性条件。其他用于学习哈希的端到端学习方法包括(Cao 等人,2016 年;Li 等人,2017 年)。端到端方法的一个优点是它们学习与特征表示最佳兼容的哈希码。

学习稀疏表示
稀疏深度哈希 (SDH) (Jeong and Song,2018) 是一种端到端方法,它涉及从预先训练的网络开始,然后执行由两个最小化步骤组成的交替最小化,一个用于训练二进制哈希,另一个用于训练连续密集嵌入。第一步涉及使用最小成本最大流方法计算与密集嵌入最兼容的最佳哈希。第二步是梯度下降步骤,通过最小化度量学习损失来学习密集嵌入。高维稀疏嵌入的思想也得到了稀疏提升方法 (Li et al,2018) 的强化,其中稀疏高维嵌入是从密集特征中学习的。这个想法受到受生物启发的苍蝇算法 (Dasgupta et al,2017) 的启发。实验结果表明,与依赖降维的 LSH 等传统技术相比,稀疏提升在精度和速度方面都有所提高。

l1 正则化,Lasso
Lasso(Tibshirani,1996)是施加稀疏性的最流行方法,已用于各种应用,包括稀疏化和压缩神经网络(Liu et al,2015;Wen et al,2016)。组套索(Meier et al,2008)是套索的扩展,它鼓励同时选择指定组中的所有特征。另一方面,另一种扩展,排他套索(Kong et al,2014;Zhou et al,2010),旨在选择组中的单个特征。我们提出的正则化器最初是受最小化 FLOP 的想法的启发,与排他套索非常相似。然而,我们的重点是稀疏生成的嵌入,而不是稀疏参数。

度量学习
虽然学习嵌入存在许多设置(Hinton 和 Salakhutdinov,2006 年;Kingma 和 Welling,2013 年;Kiela 和 Bottou,2014 年),但在本文中,我们将注意力限制在度量学习的背景下(Weinberger 和 Saul,2009 年)。度量学习损失的一些示例包括 CNN 的大边距 softmax 损失(Liu 等人,2016 年)、三重态损失(Schroff 等人,2015 年)和基于代理的度量损失(Movshovitz-Attias 等人,2017 年)。

3 预期 FLOPS 次数

在本节中,我们研究稀疏性对检索所需的预期 FLOP 数量的影响,并推导出预期 FLOP 数量的精确表达式。本文的主要思想基于以下关键见解:如果嵌入的每个维度都以概率 p(不一定独立)非零,则可以使用嵌入集上的倒排索引将速度提高到 1=p2 的量级。考虑两个嵌入向量 u;v。 计算 u T v 只需要计算索引 k 处的逐点积,其中 uk 和 vk 都非零。这是使用倒排索引的主要动机,并导致上述加速。在更正式地分析它之前,我们先介绍一些符号。

令 D = f(xi ; yi)g n i=1 为根据分布 P 从 Z = X × Y 中抽取的 n 个独立训练样本集合,其中 X ; Y 分别表示输入空间和标签空间。令 F = ffθ : X ! R d j θ 2 Θg 为一类由 θ 2 Θ 参数化的函数,将输入实例映射到 d 维嵌入。通常,对于图像任务,选择合适的 CNN 作为函数(Krizhevsky et al, 2012)。假设 X; Y ∼ P,则定义激活概率 pj = P(fθ(X)j 6= 0),及其经验版本 p¯j = 1 n Pn i=1 I[fθ(xi)j 6= 0]。

我们现在证明稀疏嵌入可以带来二次加速。考虑一个 d 维稀疏查询向量 uq = fθ(xq) 2 R d 和一个由 n 个稀疏向量组成的数据库 fvi = fθ(x (i) )g n i=1 ⊂ R d ,它们形成一个矩阵 D 2 R n×d 。我们假设 xq;x (i) (i = 1; : : : ; n) 独立于 P 采样。计算向量矩阵乘积 Duq 只需要查看 D 中与 uq 的非零项相对应的列,由 Nq = fj j j 2 [1 : d];(uq)j 6= 0g 给出。 1 此外,在每一列中,我们只需要查看非零项。这可以在实践中通过将每列的非零索引存储在独立列表中来有效实现,如图 1a 所示。
产生的 FLOP 数量由下式给出:
请注意,对于固定的稀疏度 Pd j=1 pj = d p,当每个维度都以相等的概率 pj = p; 8j 2 [1 : d] 非零时,稀疏度会最小化,此时 F(fθ;P) = d p2(因此,作为正则化器,F(fθ;P) 反过来会鼓励跨维度的这种均匀分布)。给定这种均匀分布,与每行复杂度为 O(d) 的密集乘法相比,我们得到的改进是 1=p2 (p < 1)。因此,当所有条目中只有 p 部分非零,并均匀分布在所有列上时,我们实现了 1=p2 的加速。请注意,由于期望的线性,非零索引的独立性不是必需的。

4 我们的方法

l1 正则化是最常见的引入稀疏性的方法。但是,正如我们将通过实验验证的那样,它不能确保非零值在所有维度上均匀分布,而这是实现最佳加速所需的。因此,我们诉诸于将实际产生的 FLOP 直接纳入损失函数,这将导致搜索时间和准确度之间的最佳权衡。FLOP F(;P) 是模型参数的不连续函数,很难优化,因此我们将改用连续松弛法进行优化。

5 实验

6 结论

在本文中,我们提出了一种学习高维嵌入的新方法,目的是提高检索任务的效率。我们的方法将检索过程中产生的 FLOP 集成到损失函数中作为正则化器,并通过连续松弛直接对其进行优化。我们通过展示所提出的方法有利于非零激活在所有维度上的均匀分布,进一步深入了解了我们的方法。我们通过实验表明,与‘1 正则化器相比,我们的方法确实可以实现更均匀的分布。我们将我们的方法与许多其他基线进行了比较,并表明它具有更好的速度与准确度权衡。总的来说,我们能够证明稀疏嵌入比密集嵌入快 50 倍左右,而不会显着降低准确度。

相关文章:

信息检索(57):MINIMIZING FLOPS TO LEARN EFFICIENT SPARSE REPRESENTATIONS

MINIMIZING FLOPS TO LEARN EFFICIENT SPARSE REPRESENTATIONS 摘要1 引言2 相关工作3 预期 FLOPS 次数4 我们的方法5 实验6 结论 发布时间&#xff08;2020&#xff09; 最小化 Flop 来学习高效的稀疏表示 摘要 1&#xff09;学习高维稀疏表示 2&#xff09;FLOP 集成到损失…...

Python 面试【中级】

欢迎莅临我的博客 &#x1f49d;&#x1f49d;&#x1f49d;&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

[Open-source tool]Uptime-kuma的簡介和安裝於Ubuntu 22.04系統

[Uptime Kuma]How to Monitor Mqtt Broker and Send Status to Line Notify Uptime-kuma 是一個基於Node.js的開軟軟體&#xff0c;同時也是一套應用於網路監控的開源軟體&#xff0c;其利用瀏覽器呈現直觀的使用者介面&#xff0c;如圖一所示&#xff0c;其讓使用者可監控各種…...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 灰度图像恢复(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…...

leetcode494. 目标和

1.思想方法 2.代码 class Solution { public int findTargetSumWays(int[] nums, int target) {int sum 0;for(int num : nums)sum num;if(sum < Math.abs(target) || (targetsum)%2 ! 0)return 0;int x (targetsum) / 2,n nums.length;//基于滚动数组的方法int[] dp…...

数据结构简介

在容器的基础之上&#xff0c;java引入了数据结构的概念。数据结构可以简单地理解成是一个以特定的布局方式来存储数据的容器。但是我个人觉得这种理解方式不太合理&#xff0c;根据我们学的数据结构的内容&#xff0c;我更倾向于数据结构是数据在容器中的布局方式&#xff0c;…...

PyScript:在浏览器中释放Python的强大

PyScript&#xff1a;Python代码&#xff0c;直接在网页上运行。- 精选真开源&#xff0c;释放新价值。 概览 PyScript是一个创新的框架&#xff0c;它打破了传统编程环境的界限&#xff0c;允许开发者直接在浏览器中使用Python语言来创建丰富的网络应用。结合了HTML界面、Pyo…...

巴黎成为欧洲AI中心 大学开始输出AI创始人

来自Dealroom 的数据显示&#xff0c;在欧洲和以色列AI创业公司中&#xff0c;法国的AI创业公司资金最充裕。Mistral、Owkin、Hugging Face等法国企业已经融资23亿美元&#xff0c;比英国、德国AI创业公司都要多。 一名大学生走出校门凭借聪明才智和一个黄金点子成为富豪&#…...

完全离线的本地问答模型LocalGPT如何实现无公网IP远程连接提问

文章目录 前言环境准备1. localGPT部署2. 启动和使用3. 安装cpolar 内网穿透4. 创建公网地址5. 公网地址访问6. 固定公网地址 前言 本文主要介绍如何本地部署LocalGPT并实现远程访问&#xff0c;由于localGPT只能通过本地局域网IP地址端口号的形式访问&#xff0c;实现远程访问…...

【算法专题--栈】栈的压入、弹出序列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 &#x1f4a7;栈模拟法&#x1f4a7;-- 双指针 ⭐ 解题思路 ⭐ 案例图解 四、总结与提炼 五、共勉 一、前言 栈的压入、弹出序列 这道题&#xff0c;可以说是--栈专题--&#xff0c;最经典的一道题&#xff0c;也是在…...

如何高效安全的开展HPC数据传输,保护数据安全?

高性能计算&#xff08;HPC&#xff09;在多个行业和领域中都有广泛的应用&#xff0c;像科学研究机构、芯片IC设计企业、金融、生物制药、能源、航天航空等。HPC&#xff08;高性能计算&#xff09;环境中的数据传输是一个关键环节&#xff0c;它涉及到将数据快速、安全地在不…...

Java部分复习笔记整理

一、Java常用类 1.String类 表示字符串&#xff0c;不可变&#xff0c;常用方法包括length(), charAt(), substring(), indexOf(), equals()等。 2.ArrayList类 基于数组实现的动态数组&#xff0c;可变大小&#xff0c;常用方法包括add(), get(), set(), remove(), size()…...

GoLang语言

基础 安装Go扩展 go build 在项目目录下执行go build go run 像执行脚本文件一样执行Go代码 go install go install分为两步&#xff1a; 1、 先编译得到一个可执行文件 2、将可执行文件拷贝到GOPATH/bin Go 命令 go build :编译Go程序 go build -o "xx.exe"…...

ctfshow web入门 sqli-labs web517--web524

web517 注入点id ?id-1’union select 1,2,3– 确认是否能够注入 ?id-1union select 1,database(),3-- 爆出库名 security爆出表名 ?id-1union select 1,(select group_concat(table_name) from information_schema.tables where table_schemasecurity),3-- emails,refer…...

Spring Cloud Gateway 跨域配置和跨服务请求跟踪

文章目录 引言I Spring Cloud Gateway 跨域配置1.1 网关统一处理:配置文件-推荐1.2 网关统一处理:配置类方式1.3 微服务处理,网关侧不用处理CORS。1.4 子服务依赖配置1.5 网关服务的依赖配置II 跨服务请求日志跟踪2.1 feign 依赖配置2.2 feign子模块将请求头中的参数,全部作…...

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-29残差网络ResNet

29残差网络ResNet import torch from torch import nn from torch.nn import functional as F import liliPytorch as lp import matplotlib.pyplot as plt# 定义一个继承自nn.Module的残差块类 class Residual(nn.Module):def __init__(self, input_channels, num_chan…...

解锁音乐潮流:使用TikTok API获取平台音乐信息

一、引言 TikTok&#xff0c;作为全球领先的短视频社交平台&#xff0c;不仅为用户提供了展示自我、分享生活的舞台&#xff0c;还为用户带来了丰富多样的音乐体验。在TikTok上&#xff0c;音乐与视频内容的结合&#xff0c;为用户带来了全新的视听盛宴。对于音乐制作人、品牌…...

基于yolo的物体识别坐标转换

一、模型简介: 1.1、小孔成像模型简图如下:不考虑实际相机中存在的场曲、畸变等问题 相对关系为: 为了表述与研究的方便,我们将像面至于小孔之前,且到小孔的距离仍然是焦距f,这样的模型与原来的小孔模型是等价的 相对关系为: 二、坐标系简介: **世界坐标系(world coo…...

STM32第七课:KQM6600空气质量传感器

文章目录 需求一、KQM6600模块及接线方法二、模块配置流程1.环境2.配置时钟和IO3.配置串口初始化&#xff0c;使能以及中断4.中断函数 三、数据处理四、关键代码总结 需求 能够在串口实时显示当前的VOC&#xff08;挥发性有机化合物&#xff09;&#xff0c;甲醛和Co2浓度。 …...

任务4.8.4 利用Spark SQL实现分组排行榜

文章目录 1. 任务说明2. 解决思路3. 准备成绩文件4. 采用交互式实现5. 采用Spark项目实战概述&#xff1a;使用Spark SQL实现分组排行榜任务背景任务目标技术选型实现步骤1. 准备数据2. 数据上传至HDFS3. 启动Spark Shell或创建Spark项目4. 读取数据5. 数据转换6. 创建临时视图…...

五线谱与简谱有什么区别 五线谱简谱混排怎么打 吉他谱软件哪个好

五线谱与简谱作为音乐记谱领域的两大主流系统&#xff0c;各自承载着深厚的历史渊源与独特的表现力&#xff0c;并在全球范围内被不同程度地接受和应用。尽管两者都是为了记录音乐作品中的音高和节奏信息&#xff0c;但其内在机制、适用范围以及学习曲线存在显著差别。下面我们…...

[C#][opencvsharp]C#使用opencvsharp进行年龄和性别预测支持视频图片检测

使用 OpenCVSharp 来调用 age_net.caffemodel 和 gender_net.caffemodel 来进行性别和年龄预测涉及几个步骤。以下是一个简化的流程和示例文案&#xff1a; 1. 准备工作 确保你已经安装了 OpenCVSharp 和相关的依赖项。确保你有 age_net.prototxt、age_net.caffemodel、gende…...

pdf拆分,pdf拆分在线使用,pdf拆分多个pdf

在数字化的时代&#xff0c;pdf文件已经成为我们日常办公、学习不可或缺的文档格式。然而&#xff0c;有时候我们可能需要对一个大的pdf文件进行拆分&#xff0c;以方便管理和分享。那么&#xff0c;如何将一个pdf文件拆分成多个pdf呢&#xff1f;本文将为你推荐一种好用的拆分…...

VScode Python debug:hydra.run.dir 写入launch.json

记录一个debug时的经验&#xff1a; VS code extension名称版本Pythonv2024.8.1Python Debuggerv2024.6.0 我配置的project运行 train.py 时需要在 terminal 输入参数 hydra.run.dirxxx 我想用 vscode debug 查看内部代码&#xff0c;按以往的经验需要将args写入launch.json&…...

ExVideo: 提升5倍性能-用于视频合成模型的新型后调谐方法

标题&#xff1a;ExVideo: Extending Video Diffusion Models via Parameter-Efficient Post-Tuning作者: Zhongjie Duan; Wenmeng Zhou; Cen Chen; Yaliang Li; Weining QianDOI: 10.48550/arXiv.2406.14130摘要: Recently, advancements in video synthesis have attracted s…...

laravel Dcat Admin 入门应用(三)Grid 之 Column

Dcat Admin 是一个基于 Laravel-admin 二次开发而成的后台构建工具&#xff0c;只需很少的代码即可构建出一个功能完善的高颜值后台系统。支持页面一键生成 CURD 代码&#xff0c;内置丰富的后台常用组件&#xff0c;开箱即用&#xff0c;让开发者告别冗杂的 HTML 代码。 larav…...

掌握Llama 2分词器:填充、提示格式及更多

目录 简介Llama 2分词器基础为分词器设置填充添加特殊标记使用BOS和EOS标记进行分词定义填充标记训练中使用填充标记高级功能&#xff1a;掩码标记Llama的提示格式结论 简介 在语言模型领域&#xff0c;时间变化迅速。自Llama 2发布已经有几个月了&#xff0c;但关于其分词器…...

pdf合并,pdf合并成一个pdf,pdf合并在线网页版

在处理pdf文件的过程中&#xff0c;有时我们需要将多个pdf文件合并成一个pdf文件。作为一名有着丰富计算机应用经验的技术博主&#xff0c;我将为您详细介绍如何将多个pdf文件合并成一个pdf文件。 pdf合并方法&#xff1a;使用&#xff0c; “轻云处理pdf官网” 打开 “轻云处…...

算法基础--------【图论】

图论&#xff08;待完善&#xff09; DFS:和回溯差不多 BFS:进while进行层序遍历 定义: 图论&#xff08;Graph Theory&#xff09;是研究图及其相关问题的数学理论。图由节点&#xff08;顶点&#xff09;和连接这些节点的边组成。图论的研究范围广泛&#xff0c;涉及路径、…...

x86和x64架构的区别及应用

x86和x64架构的区别及应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在计算机硬件和软件领域&#xff0c;x86和x64是两种常见的处理器架构。它们在计算能…...

2024年度总结:不可错过的隧道IP网站评估推荐

随着网络技术的飞速发展&#xff0c;隧道IP服务成为了许多企业和个人在进行网络活动时的得力助手。作为专业的测评团队&#xff0c;我们经过一整年的深入研究和测试&#xff0c;为大家带来了三款备受瞩目的隧道IP网站推荐——品易HTTP、极光HTTP和一G代理。接下来&#xff0c;我…...

Linux下VSCode的安装和基本使用

应用场景&#xff1a;嵌入式开发。 基本只需要良好的编辑环境&#xff0c;能支持文件搜索和跳转&#xff0c;就挺OK的。 之所以要在Linux下安装&#xff0c;是因为在WIN11上安装后&#xff0c;搜索功能基本废了&#xff0c;咋弄都弄不好&#xff0c;又不方便重装win系统&#x…...

C# 实现websocket双向通信

&#x1f388;个人主页&#xff1a;靓仔很忙i &#x1f4bb;B 站主页&#xff1a;&#x1f449;B站&#x1f448; &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C# &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff…...

Spring Boot结合FFmpeg实现视频会议系统视频流处理与优化

在构建高效稳定的视频会议系统时,实时视频流的处理和优化是开发者面临的核心挑战之一。这不仅仅是简单的视频数据传输,更涉及到一系列复杂的技术问题,需要我们深入分析和有效解决。 高并发与实时性要求: 视频会议系统通常需要支持多人同时进行视频通话,这就意味着系统需要…...

扫扫地,搞搞卫生 ≠ 车间5S管理

在制造业的日常运营中&#xff0c;车间管理是一项至关重要的工作&#xff0c;它直接关系到生产效率、产品质量以及员工的工作环境。然而&#xff0c;许多人常常将简单的“扫扫地&#xff0c;搞搞卫生”等同于车间5S管理&#xff0c;这种误解不仅可能导致管理效果不佳&#xff0…...

ES(笔记)

es就是json请求体代替字符串查询 dsl查询和过滤&#xff0c;一个模糊查询&#xff0c;一个非模糊查询 must&#xff0c;should 做模糊查询的&#xff0c;里面都是match&#xff0c;根据查询内容进行匹配&#xff0c;filter过滤&#xff0c;term词元查询&#xff0c;就是等值查…...

开箱即用的fastposter海报生成器

什么是 fastposter ? fastposter 海报生成器是一款快速开发海报的工具。只需上传一张背景图&#xff0c;在对应的位置放上组件&#xff08;文字、图片、二维码、头像&#xff09;即可生成海报。 点击代码直接生成各种语言 SDK 的调用代码&#xff0c;方便快速开发。 软件特性&…...

力扣每日一题 6/28 动态规划/数组

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2742.给墙壁刷油漆【困难】 题目&#xff1a; 给你两个长度为 n 下标从 0…...

[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式8275张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;8275 标注数量(xml文件个数)&#xff1a;8275 标注数量(txt文件个数)&#xff1a;8275 标注…...

若依 ruoyi 分离版 vue 简单的行内编辑实现

需要实现的效果&#xff1a;双击文本 - 修改文本 - 保存修改。 原码&#xff1a;仅文本显示文字内容 <el-table-column label"商品" align"center" prop"goodsName" width"200" v-if"columns[1].visible" /> 实现…...

【工具】API文档生成DocFX

文章目录 总述示例第一步&#xff1a;安装 DocFX第二步&#xff1a;初始化项目第三步&#xff1a;编辑配置文件第四步&#xff1a;编写文档第五步&#xff1a;生成文档第六步&#xff1a;预览文档第七步&#xff1a;部署文档 总述 DocFX 是一个由微软开发的开源文档生成工具&a…...

在 JavaScript 中处理异步操作和临时事件处理程序

关键技术和设计总结 使用 Promise 和 then 进行异步操作: 我们通过使用 Promise 来处理异步操作&#xff0c;确保操作按顺序执行。在 getReportListByCurrentTime 函数中&#xff0c;返回一个 Promise 对象&#xff0c;保证在数据加载完成后调用 resolve&#xff0c;以便可以在…...

[Cocos Creator] v3.8开发知识点记录(持续更新)

问题&#xff1a;从 cc 里找不到宏定义 CC_PREVIEW 等。 解决方案&#xff1a;找不到就自己定义&#xff0c;将 declare const CC_PREVIEW; 添加到需要的ts文件里。参考&#xff1a;creator3d 找不到宏定义如 CC_EDITOR&#xff0c;CC_PREVIEW&#xff0c;CC_JSB - Creator 3.x…...

Excel_VBA编程

在Excel中&#xff0c;VBA&#xff08;Visual Basic for Applications&#xff09;是一种强大的工具&#xff0c;可以用来自动化各种任务。下面介绍一些常用的VBA函数和程序结构&#xff1a; 常用函数 MsgBox&#xff1a;用于显示消息框。 MsgBox "Hello, World!"In…...

Java中的Path类使用详解及最佳实践

Java中的Path类使用详解及最佳实践 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中的Path类&#xff0c;这是Java标准库中用于操作文件…...

生成和查看预定义宏

参考下面的指令 arm-none-eabi-gcc -marcharmv7e-m -dM -E - < /dev/null | grep SYNC这个指令是用来生成和查看预定义宏&#xff08;macros&#xff09;的一种方法。让我们逐步分解和解释这个命令的各个部分&#xff1a; arm-none-eabi-gcc: 这是 ARM 架构下的交叉编译器…...

Redis 7.x 系列【12】数据类型之基数统计(HyperLogLog)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 PFADD2.2 PFCOUNT2.3 PFMERGE 3. 应用场景 1. 概述 基数表示数…...

开源大模型RAG企业本地知识库问答机器人-ChatWiki

ChatWiki ChatWiki是一款开源的知识库 AI 问答系统。系统基于大语言模型&#xff08;LLM &#xff09;和检索增强生成&#xff08;RAG&#xff09;技术构建&#xff0c;提供开箱即用的数据处理、模型调用等能力&#xff0c;可以帮助企业快速搭建自己的知识库 AI 问答系统。 开…...

基于Java的蛋糕预定系统【附源码+LW】

摘 要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统购物方式采取了人工的管理方法&#xff0c;但这种管理方法存…...

Java框架的原理主要基于以下几个核心

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…...

qt中的枚举值-QMetaEnum

QMetaEnum 测试代码hcpp 讲解 测试代码 h #include <QMainWindow> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~M…...

011、MongoDB副本集数据同步机制深度解析

目录 MongoDB副本集数据同步机制深度解析 1. 副本集架构概述 1.1 基本组成 1.2 节点角色 2. 数据同步过程详解 2.1 初始同步 2.2 持续复制 2.3 Oplog详解 3. 数据一致性与可用性 3.1 写关注(Write Concern) 3.2 读偏好(Read Preference) 3.3 因果一致性会话 4. 高…...

基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务7:格式化并启动Hadoop集群

任务描述 任务内容为格式化并启动Hadoop集群&#xff0c;并修复可能出现的Bug。 任务指导 Hadoop集群启动前需要在NameNode上格式化元数据&#xff0c;成功格式化后才能启动Hadoop的HDFS和YARN。 格式化启动Hadoop集群的步骤如下&#xff1a; 1. 在NameNode&#xff08;ma…...

Spring Boot中的事件通知机制

Spring Boot中的事件通知机制 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨一下如何在Spring Boot中实现事件通知机制。 一、事件通知机制简介…...

宫格和弹性盒布局怎么用?

在CSS布局中&#xff0c;宫格布局&#xff08;Grid Layout&#xff09;和弹性布局&#xff08;Flexbox&#xff09;是两种非常常用且强大的布局方式。下面分别详细解释这两种布局方式。 宫格布局&#xff08;CSS Grid Layout&#xff09; 概述 CSS Grid Layout是一种二维的布…...

3d模型里地毯的材质怎么赋予?---模大狮模型网

在进行3D建模时&#xff0c;赋予地毯逼真的材质是营造现实感和增强场景氛围的重要步骤。模大狮将介绍在常见的3D建模软件中&#xff0c;如何有效地为地毯赋予各种材质&#xff0c;以及一些实用的技巧和注意事项。 一、选择合适的地毯材质 在3D建模中&#xff0c;地毯的材质选择…...

透视全新哈弗H6:价格“高开低走”,销量能否进阶尚待观察

全新哈弗H6的发布会主题为“底线与进阶”,关于这两个词品牌方有自己的解读,第三方也可以有自己的理解。新款车的价格坚守住的底线,只不过还是采用了“高开低走”的方案。新款1.5T7DCT系列,售价11.79、12.39、13.19万元新款2.0T9DCT系列,售价13.39、14.39万元对于一辆紧凑级…...

读创公司调研|江波龙:两款自研主控芯片已批量出货,并实现数千万颗规模化产

读创公司调研|江波龙:两款自研主控芯片已批量出货,并实现数千万颗规模化产品导入)江波龙海透露,公司两款自研主控芯片已经批量出货,赋能公司eMMC和SD卡两大核心产品线,并已经实现了数千万颗的规模化产品导入。江波龙公告截图公开资料显示,江波龙主要从事Flash及DRAM存储器…...

采用Java+ SpringBoot+ IntelliJ+idea开发的ADR药物不良反应监测系统源码

采用Java SpringBoot IntelliJidea开发的ADR药物不良反应监测系统源码 ADR药物不良反应监测系统有哪些应用场景&#xff1f; ADR药物不良反应监测系统有哪些应用场景&#xff1f; ADR药物不良反应监测系统具有广泛的应用场景&#xff0c;以下是一些主要的应用场景&#xff1a…...

C++笔试强训day36

目录 1.提取不重复的整数 2.【模板】哈夫曼编码 3.abb 1.提取不重复的整数 链接https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1?tpId37&tqId21232&ru/exam/oj 按照题意模拟就行&#xff0c;记得从右往左遍历 #include <iostream> usi…...

aws glue配置读取本地kafka数据源

创建连接时填写本地私有ip地址&#xff0c;选择网络配置 配置任务选择kafka作为数据源 但是执行任务时日志显示连接失败 文档提到只能用加密通信 如果您希望与 Kafka 数据源建立安全连接&#xff0c;请选择 Require SSL connection (需要 SSL 连接)&#xff0c;并在 Kafka priv…...

开源工具专题-04 Atlassian Crowd部署备份及迁移

开源工具专题-04 Atlassian Crowd部署备份及迁移 注&#xff1a; 本教程由羞涩梦整理同步发布&#xff0c;本人技术分享站点&#xff1a;blog.hukanfa.com转发本文请备注原文链接&#xff0c;本文内容整理日期&#xff1a;2024-05-29csdn 博客名称&#xff1a;五维空间-影子&…...