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

论文解读-《OpenGSL A Comprehensive Benchmark for Graph Structure Learning》 - zhang

1. 论文介绍

论文标题:OpenGSL: A Comprehensive Benchmark for Graph Structure Learning
论文领域:图神经网络,图结构学习
论文发表:Camera-ready version for NeurIPS Datasets and Benchmarks Track 2023
论文代码:https://github.com/OpenGSL/OpenGSL
论文背景:

gnnopengsl01

2. 论文摘要

图神经网络(GNNs)能够有效地集成图的拓扑结构和节点属性,已成为图表示学习的事实标准。然而,由于图的复杂和偶然的形成过程,节点连接固有的次优性质给有效地建模带来了巨大的挑战。为了解决这一问题,图结构学习(Graph Structure Learning,GSL)作为一种以数据为中心的学习方法,近年来得到了广泛的关注。GSL背后的核心概念是联合优化图结构和相应的GNN模型。尽管提出了许多GSL方法,但由于实验协议不一致,包括数据集、数据处理技术和分割策略的变化,该领域的进展仍然不清楚。在本文中,我们介绍了OpenGSL,第一个全面的GSL基准,旨在解决这一差距。OpenGSL通过使用统一的数据处理和分割策略在各种流行的数据集中对最新的GSL方法进行评估,从而实现了对这些方法的公平比较。通过大量的实验,我们观察到,现有的GSL方法并不总是优于香草GNN的同行。我们还发现,学习结构的同质性与任务绩效之间没有显著的相关性,挑战了共同的信念。此外,我们观察到,尽管计算量和空间消耗都很高,但学习的图结构在不同的GNN模型中表现出很强的泛化能力。我们希望,我们的开源库将有助于快速和公平的评估,并鼓励在这一领域的进一步创新研究。

3. 相关介绍

3.1 相关背景

现实世界的图通常表现出非最优特征,例如缺少有价值的链接和节点之间存在虚假连接。

为了提高图质量,图结构学习(GSL)一系列以数据为中心的图学习方法,最近引起了相当大的研究兴趣。这些方法旨在共同优化图结构和相应的GNN表示。

目前研究领域有大量的GSL方法,但是并没有一个全面的基准,体现在
(1),在以往的工作中使用了不同的数据集、数据处理方法和数据拆分策略,使得许多结果无法对比和比较。
(2), 缺乏对学习结构本身的理解,特别是关于其同质性和对 GCN 以外的 GNN 模型的通用性。
(3),除了准确性之外,了解每种方法的计算和内存成本也很重要。

3.2 本文贡献

本文第一个针对 GSL 的综合基准测试。OpenGSL 通过统一的 API 实现了广泛的 GSL 算法,同时还采用了一致的数据处理和数据拆分方法进行公平比较。
(1) 综合基准。OpenGSL 通过统一 10 个具有不同特征的流行数据集的实验设置,可以在 13 种最先进的 GSL 方法之间进行公平的比较。
(2) 多维度分析。我们从各个维度对 GSL 方法进行了系统分析,包括学习结构的同质性、学习结构在 GNN 模型之间的泛化性以及现有方法的时间和内存效率。主要发现有

  • 与对同质性假设的普遍看法相反,增加结构的同质性并不一定意味着性能的提高。
  • GSL 方法学习的结构具有很强的泛化性。
  • 大多数 GSL 方法的时间和内存效率低下,其中一些方法需要比普通 GNN 多几个数量级的资源,这凸显了对更高效的 GSL 方法的迫切需求。
    (3),开源基准库和未来方向:我们已在 GitHub 上公开了我们的基准库,旨在促进未来的研究工作。

3.3 同质性

同质性和异质性是基于连接节点对之间相似性的两种互斥测量,其中如果两个节点共享相同的节点标签,则认为它们相似。整个图G的同质性定义为:

gnnopengsl02

相应的,图G的异质性定义为 1−homo⁢(𝒢)

GSL研究的时间线表如下

gnnopengsl03

将现有的 GSL 方法分为三类,如左下角所示:(a)预训练,(b)协同训练,以及(c)迭代训练。预训练涉及一个两阶段的学习过程,其中通过预训练学习结构,然后用于在下游任务中训练 GNN,在协同训练方法中,生成图结构的神经网络与 GNN 一起进行优化。迭代方法涉及迭代训练两个组件;他们从优化的 GNN 生成的预测或表示中学习结构,并使用它来训练新的 GNN 模型以供后续迭代。

4. 基准设计

4.1 数据集

本文收集了 10 个在 GSL 文献中被广泛使用的图节点分类数据集,分别是论文引用数据集 Cora、Citeseer、Pubmed, 社交网络数据集BlogCatalog 和 Flickr。
数据集分为同质图和异质图两类,详细介绍如表格所示。
gnnopengsl04

4.2 GSL算法

考虑的GSL算法包括 LDS、ProGNN、IDGL、GRCN、GAug、SLAPS1、GEN、WSGNN、
Nodeformer、CoGSL、SUBLIME、STABLE 和 SEGSL 这十三个算法。

LDS算法:假设该结构是从具有总参数的 n2 相互独立的伯努利分布中采样的。该文提出了一个双水平优化问题,其中内部问题对训练集上的 GNN 参数进行优化,而外部问题对验证集上的结构参数进行优化。采用基于元学习的方法对结构参数进行优化。

ProGNN:直接优化邻接矩阵,将其设置为 n×n 参数矩阵。引入稀疏性、低秩性和平滑性三个属性来指导结构学习。

IDGL:将结构建模为节点表示的加权余弦函数。为了提高较大图的效率,本文提出了一种基于锚点的结构学习方法。

GRCN:包含两个 GNN,一个用于节点分类,另一个用于计算节点表示,用于通过度量函数推导结构。两个 GNN 同时优化,以最大限度地减少任务损失。

GAug:与 GRCN 具有相似的架构,不同之处在于 GAug 使用图自动编码器来学习结构,而结构学习除了任务损失外,还受到边缘预测损失的指导。

SLAPS:探讨了原始结构缺失的场景。它利用 MLP 获取节点表示,通过度量函数生成结构。SLAPS 的整体架构与 GRCN 类似,但增加了一个自动去噪损耗来指导结构学习。具体来说,损坏的特征和学习到的结构被输入到另一个 GNN 中,输出有望重建原始特征。

GEM:假设最优结构是由 SBM 模型生成的,并进一步假设不同级别的节点表示的相似矩阵是对最优结构的观测。采用 EM 算法来学习给定优化良好的 GNN 的预期最优结构。GEN 以迭代的方式进行结构学习和任务学习。

Nodeformer:一种模型,它允许利用内核化的 Gumbel-Softmax 算子对所有节点对进行层级边缘重新加权,该算子将节点数量的复杂性从二次降低到线性。为了指导结构学习,实现了额外的边缘级正则化。

CoGSL:从原始图中提取了两个基本视图,并使用视图估计器对其进行了细化。采用自适应融合策略来获得最终视图。CoGSL 保持了三个视图的性能,同时减少了每两个视图之间的相互信息,以实现“最小足够的结构”。

SUBLINE:一种无监督结构学习的方法。提出了一种结构引导对比学习框架,其中设置锚定结构为学习者结构提供监督信号。具体来说,SUBLIME 利用基于 GNN 的编码器从两个视图中获取节点表示,并通过节点级对比损失来优化 GNN 编码器。在训练过程中,锚点结构每隔几个 epoch 更新一次,作为锚点结构和学习器结构之间的插值。

WSGNN:一种概率生成模型,它利用变分推理来共同学习节点标签和图结构。它采用双分支模型架构来共同细化节点嵌入和潜在结构。复合损失函数是从底层数据分布中得出的,有效地捕获了观测数据和缺失数据之间的相互作用。

STABLE:利用对比学习获得可靠的节点表示。新结构被计算为节点表示的相似矩阵。此外,提出了一种先进的 GCN 来增强普通 GCN 的鲁棒性。

SEGSL:引入了图结构熵的概念。首先,增强一维结构熵最大化策略引导的结构。然后,构建编码树来捕获图结构的层次信息。最后,SEGSL 从编码树中重建图结构。该方法以迭代的方式进行结构学习和任务学习。

4.3 研究问题

q1:现有的GSL取得了多大的进展
由于大多数实现的 GSL 方法都以 GCN 为骨干,因此我们将 GSL 方法的性能与普通 GCN 进行了比较,以验证学习结构的增强。

gnnopengsl05

q2: GSL 是否在具有更高同质性的图结构表现更好?
同质假设一直是现代 GNN 设计的基本动机,这也被带到了 GSL 场景中。 更具体地说,一些现有的 GSL 方法试图通过引入显式以同质为导向的目标。
通过检查同质性和节点分类性能之间的相关性来确定性能改进是否源于更同质的图结构。

q3:学习到的结构可以推广到其他 GNN 模型吗?
将每个 GSL 方法视为预处理步骤,并使用学习到的结构从头开始训练 GNN 模型,而不是使用与结构联合优化的 GNN。通过比较原始图和新图的性能,我们可以评估学习结构的泛化性。

q4:现有的 GSL 方法在时间和空间上是否有效率?
记录了每种方法训练过程中的具体运行时间和峰值 GPU 内存消耗。为了公平比较,这部分的所有实验都是在单个 NVIDIA A800 GPU 上进行的。

5. 实验结果分析

5.1 性能比较

(1),对于同质图,许多 GSL 方法在具有平衡类的数据集中效果很好,但它们不能处理高度不平衡的情况。

gnnopengsl06

(2),GSL 方法对特定的异质图有效。

gnnopengsl07

5.2 结构学习中的同质性

将学习结构的同质性和节点分类性能绘制在同一图中,为了很好的对比和比较。
(3),学习结构的同质性在同质和异质数据集上有所不同

gnnopengsl08

(4),同质并不总是结构学习的正确指导
在大多数情况下,我们没有观察到性能与同性之间存在正相关关系,在某些情况下甚至呈负相关(在 Citeseer 和 Wiki-cooc 上)。
GNN 可以利用某些异质结构模式,从而在有限的监督下以同质性指导结构学习可能不会产生足够的同质结构,而是破坏这些模式并导致非最优结果。

gnnopengsl09

5.3 通用性

(5),GSL 方法学习的结构具有较强的泛化性
与原始结构相比,许多 GNN 模型在学习的结构上表现出更好的性能,以绿色标记。实验结果为学习结构的泛化性提供了有力的证据,并呼吁进一步探索和应用 GSL 方法。

gnnopengsl10

5.4 时间和内存效率

(6),大多数 GSL 方法耗时和空间大
大多数现有的 GSL 方法都存在严重的效率问题,许多方法的运行时间是 GCN 方法的十倍。
gnnopengsl11

6. 未来方向

(1),重新思考 GSL 中同质性的必要性。
GSL 的性能改进并不一定源于同质性的增加。

(2),不同的数据集设计自适应 GSL 方法
当前的 GSL 方法在不同的数据集中并不普遍有效。因此,创建能够适应不同数据集的创新 GSL 方法存在明显的机会。关注两个关键问题:

  • 学习的结构应该为不同的数据集表现出哪些特征?
  • 如何将这些特征融入到结构学习中

(3),开发与任务无关的 GSL 方法
现有的 GSL 研究工作主要是任务驱动的。然而,现实世界的场景通常需要在不访问下游任务的情况下细化图结构。

(4),提高 GSL 方法的效率

7. 总结

GSL领域内的综述性问题,不仅仅有综述,而且基于领域内的13种方法重新进行实验和关于同质性的检验,虽然没有提出新算法,但是给出更好使用GSL算法的建议。

7. 个人感悟

浅层的综述只介绍算法和简单比较。高阶的综述进行XXX的实验比较,并给出相关的研究建议。

相关文章:

论文解读-《OpenGSL A Comprehensive Benchmark for Graph Structure Learning》 - zhang

1. 论文介绍 论文标题:OpenGSL: A Comprehensive Benchmark for Graph Structure Learning 论文领域:图神经网络,图结构学习 论文发表:Camera-ready version for NeurIPS Datasets and Benchmarks Track 2023 论文代码:https://github.com/OpenGSL/OpenGSL 论文背景:2. 论…...

Cmake介绍

1.Cmake介绍cmake是一个跨平台的,用于构建项目的工具。 关于项目的构建,我们并不陌生,广为人知的,诸如:makefile(使用make命令),与IDE集成的vs的nmake,linux下的GNU make,Qt的qmake等。 如果自己动手写makefile,就会发现,makefile通常依赖于当前的编译平台,并且编译mak…...

Git 生成 ssh key

首先,确保你已经配置了 Git 的用户名和邮箱。打开 Git Bash,执行以下命令: git config --global user.name "你的用户名" git config --global user.email "你的邮箱地址"可以使用 git config --global --list 命令来检查配置是否成功。 打开 Git Bash,…...

基础篇:消息队列理论部分,另一种环境搭建Docker运行RabbitMQ

基础篇:消息队列理论部分,另一种环境搭建Docker运行RabbitMQ消息队列与RabbitMQ初探 本章学习目标理解什么是消息队列以及它解决了什么核心问题。了解RabbitMQ是什么及其在技术生态中的位置。另一种方式在本地使用Docker快速搭建一个RabbitMQ服务。熟悉RabbitMQ的管理控制台。…...

项目案例作业1:学生信息管理系统(面向对象初步接触)

集美大学课程实验报告-项目案例作业1:学生信息管理系统(面向对象初步接触)项目名称 内容课程名称 数据结构班级 网安2413指导教师 郑如滨学生姓名 林沁茹学号 202421336067实验项目名称 项目案例作业1:学生信息管理系统(面向对象初步接触)上机实践日期上机实践时间 2学时一…...

P1097 合唱队形

题目 做法:dp 代码: #include <bits/stdc++.h> using namespace std; int n,ans=-1; int s[1007]; int a[1007]; int b[1007]; int main(){cin >> n;for(int i=1;i<=n;i++){cin >> s[i];}for(int i=1;i<=n;i++){for(int j=0;j<i;j++){if(s[j]&l…...

一生一芯学习:pa2.1 RTFM

一生一芯学习:pa2.1 RTFM前面的内容后面再补,因为近期要C考核了,所以先准备下C考核所需的内容。 RTFSC(2) 整理一条指令在NEMU中的执行结果 从函数中跳转,宏嵌套中慢慢进入最终的代码,人肉gdb一下, 比如在sdb中执行一次si,那么根据cmd_si代码那我们会跳转到cpu_exec()中…...

Linux网络:初识网络 - 详解

Linux网络:初识网络 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-si…...

20250909比赛总结

T1 唐诗题目,维护最大与次大,就做完了,我边界错了(1为最有删除时不对),然后我加了一个1-100的暴力,就过了(浪费nan分钟) 下次写的时候多模拟边界,不要只关注后面的,而且只有打太久(>2h)就下一道...

又寸入生白勺司烤

我一直觉得,我们的人生就像一个凸包,时而高超,时而学习之。人类,一直在这样的高超和低谷下徘徊着,疑惑着,找寻着。那么,在低谷的时候,我们却让洛谷成为了人生的跳楼机,让我们反复升空又落地,这样一来,高超就更为容易了。但又会更快的降落,望着跳楼机窗外的暗红色的…...

Ubuntu 安装 GIPM

一行命令即可 sudo apt-get install gimp安装完后得到的软件:...

手动下载vscode扩展的方法

主要用于离线环境下安装。比如,要下载cpptools,可以使用以下url:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-vscode/vsextensions/cpptools/1.13.9/vspackage?targetPlatform=win32-x64在url中指定版本号和目标平台即可。目前支持的平台如下…...

GAS_Aura-Aura Projectile

1创建了一个火球Actor...

CF1583F Defender of Childhood Dreams

构造比较非人类。 先每 \(k\) 个点分一组,染上同一种颜色,再每 \(k^2\) 个点一组,组内染上同一种颜色,然后依次类推,发现满足条件,可以证明其下界是为 \(\log_k n\) 的。...

scrollArea无法滚动

问题本质 ScrollArea(如 Radix UI、shadcn/ui 等)无法滚动的根本原因是缺乏明确的高度约束。ScrollArea 需要知道自己的确切高度才能计算是否需要显示滚动条。 常见错误模式 // ❌ 错误:ScrollArea 无法获得明确高度 <div className="container"><Scroll…...

时间序列分析(1)

Time Series Problems and Challenges 时间序列问题和挑战 Time series data are a very important source of information. People always tried to analyze time series data to understand the nature of events. Since ancient times, mankind has begun to wonder what li…...

一行代码没写,做了一个小程序

我花了三天时间,准确地说应该是8个小时不到(因为期间《天龙八部》看到四十多回了,停不下来)做了一个微信小程序。 起因是和一个朋友聊到彩票,他说他都是攒好多张了之后,然后一起手动核对有没有中奖。当时我就萌生了做一个小程序的想法,扫一下就能知道是不是又做慈善了。…...

【置顶】欢迎来到 ziyaojia 的主页

这是 HN-CS 最菜的 OIer,你这个神犇敢和他对视 3 秒吗? 洛谷账号:ziyaojia...

copyparty 是一款使用单个 Python 材料实现的内网文件共享软件,具有跨平台、低资源占用等特点,适合需要本地化文件管理的场景

copyparty 是一款使用单个 Python 材料实现的内网文件共享软件,具有跨平台、低资源占用等特点,适合需要本地化文件管理的场景pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…...

ZYNQ Ultrascale+系列部署yolo v10(暂定,若过于艰难则考虑降级或FQ)

YOLO V10模型分析与优化 2.1 YOLO V10模型获取与环境准备 步骤1:创建工作目录结构 # 打开终端,创建项目根目录 mkdir -p ~/yolo_v10_fpga_project cd ~/yolo_v10_fpga_project# 创建详细的目录结构 mkdir -p models/original # 存放原始模型 mkdir -p models/onnx …...

【EF Core】再谈普通实体关系与 Owned 关系的区别

在很多个世纪前,老周曾写过实体之间普通关系(一对一,一对多,多对多)与 Owned 关系的区别。不过,那次写得比较粗浅,逼格不够高,于是,老周厚着脸皮地决定重新写一下。 首先,为什么这次老周用原单词 Owned 呢,官方文档目前的翻译(怀疑是机器干的)为“从属”,这种说法…...

qoj6104 Building Bombing

题意 有 \(n\) 栋建筑,第 \(i\) 栋建筑的高度为 \(a_i\),一座建筑能从左侧看到仅当它左侧的建筑高度都小于它,问你最少需要爆破几座房子,才能使第 \(l\) 座房子成为能看到的第 \(k\) 高建筑。 \(n\le 10^5,k\le 10\)。 思路 首先 \(l\) 要能被看到,因此先把 \(l\) 左边高度…...

必知必会:使用serializers.Serializer在views.py视图文件中序列化和反序列化过程的开发模板

from django.views import Viewclass ProjectTestView(View):"""a.获取所有数据b.创建一条数据"""def get(self, request):"""序列化输出到前端的过程规则:a.创建模型对象b.将上面已创建好的的模型对象传递给序列化器类的instan…...

Cursor小程序实战五:Cursor对接微信两大核心问题

一、对话内容非技术人员的语言 程序员/技术人员的语言比如:回调地址,api,发送请求 ..... 二、微信的两大问题:授权、微信支付 目的是对于非技术人员能够输出一段比较精确的提示词,方便完成功能的开发 1)微信授权登陆 1、永远绕不开用户登陆流程用户登录 手机号验证码…...

电商系统的Mysql表设计是怎么样呢

一、前述 问题1: 电商系统创建订单的逻辑中,如果订单使用了优惠券的话,是会把优惠券直接标在订单表么,还是会单独创建一个表里记录订单和多个优惠券之间的关系 问题2: 如何设计一套mysql数据库的表,可以将订单信息、支付信息、优惠券信息以及商品信息之间关联起来二、实战演练…...

Docker应用 - CloudSaver

CloudSaver 是一个网盘搜索、转存工具。首次部署需要先注册用户,默认管理员注册码 230713。注册进入后可以在设置里修改管理员和用户注册码。用户配置处,可以登录多种网盘授权(可惜现在不支持百度了)。不设置也可以搜索,但不能直接转存。在常见问题可以查找搜索频道(密码…...

SQL查找是否存在,别再count了! - DAYTOY

根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count 1 目前多数人的写法 多次REVIEW代码时,发现如现现象:业务代码中,需要根据一…...

Cursor小程序实战系列二:如何从原型界面到小程序界面

一、原型界面的生成 在cursor中用以下提示词我想开发一个小程序 目标用户: • 主要用户:25-45岁的家长,没时间来教小孩怎么写作文,也可能不知道还在对应年级作文的写作规范和要求 • 用户痛点:1、家长难以针对孩子写作弱点提供定制化提升方案2、无法获得实时写作建议 我目…...

Cursor小程序实战系列三: 前后端对接保姆级拆解

一、先理解下什么是前后端,为什么叫对接? 二、谁来定义API接口 1、传统的模式 先后端出接口定义,前端人员按照接口定义自己搭建模拟数据,这样的好处是 前端,后端都能同时开发,互不影响 2、cursor模式 三、生成API接口文档 1、最好的方式,在rules中定义接口变化同时更新…...

课前问题思考2

1.方法相关问题 public class Main {static void changeStr(String x) {x = "xyz";}static void changeArr(String[] strs) {for (int i = 0; i < strs.length; i++) {strs[i] = strs[i]+""+i;}}public static void main(String[] args) { String x …...

Cursor小程序实战四:如何让AI写好后端代码

五、用好mermaid流程画图工具...

Web 3

Web 3 更改前题目 题目没有做记录,卡在了最后一步正则绕过,前七个绕过挺简单的 ?A[]=1&B[]=2&C=s878926199a&D[]=0&E=5201.1&F=0xDEADC0DE正则绕过: if (!preg_match(/ls|dir|nl|nc|cat|tail|more|flag|sh|cut|awk|strings|od|curl|ping|\*|sort|ch|zi…...

Cursor小程序实战系列一:0到1开发一个小程序,需求整理、小程序注册备案

一、需求的诞生 某书发表了一片笔记: 家长使用多维表格+DeepSeek对小孩进行作文辅导。痛点两到三个核心功能点这些内容对使用Cursor来生成页面很有帮助AI作文辅导一般的家长辅导孩子作文非常困难,主要原因如下:1、家长难以针对孩子写作弱点提供定制化提升方案 2、无法获得实时…...

深入解析:MySQL 数据类型与运算符详解

深入解析:MySQL 数据类型与运算符详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importan…...

【前端Vue】如何优雅地在vue中引入ace-editor编辑器 - 指南

【前端Vue】如何优雅地在vue中引入ace-editor编辑器 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …...

USACO08 OPEN Roads Around the Farm S (递归)

(我太垃了,得写点题解提升一下) P2907 [USACO08OPEN] Roads Around The Farm S 题目描述 Farmer John 的奶牛对探索农场周围的领地产生了兴趣。最初,所有 $N$ 头奶牛($1 \leq N \leq 10^9$)以一个大群体的形式开始沿着一条道路旅行。当遇到岔路时,群体有时会选择分成两个…...

dubbo-go example学习记录

dubbo-go example仓库地址: https://github.com/apache/dubbo-go-samples你可以在 https://github.com/apache/dubbo-go-samples/blob/main/README_CN.md 查看中文的README文档快速上手 这个是通过 https://cn.dubbo.apache.org/zh-cn/blog/2021/01/14/快速上手-dubbo-go/ 官方…...

org.apache.commons.lang3.StringUtils工具类中 isEmpty 和 isBlank 的区别 - DAYTOY

1 isEmpty系列 1.1 StringUtils.isEmpty() 说明:是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")=falseStringUtils.isEmpty(null) = true StringUtils.isEmpty("") = true StringUtils.i…...

ubuntu如何查看是否有显卡,显卡型号

在 Ubuntu 系统中,查看是否有显卡以及显卡型号的方法有多种。以下是几种实用的命令,方便你快速获取显卡信息。1. 使用 lspci 查看显卡信息 lspci 命令会列出所有 PCI 设备,包括显卡。 命令bashlspci | grep -i vga输出示例 00:02.0 VGA compatible controller: Intel Corpor…...

赛题

A U607526 「Monkey Mountine Round I」乔迁新居 题目背景 天大的喜事,游荡几十载之后,猴王找到了水帘洞! 但是,洞口较小,不知猴族老小和辎重几次能运完。善武不通文的猴王一代广招贤才,找你算算。 题目描述 共有 \(n\) 只猴子,\(m\) 车辎重。洞口每次可以进入 \(x\) 只…...

JavaScript生成随机数的方法

在JavaScript中,创建随机数可以通过内置的 Math 对象实现。我们将会探讨一些生成随机数的方法,它们在不同场合下都显示出色。 基本的随机数生成 // 生成0到1之间的随机数(不包含1) let randomNumber = Math.random(); Math.random() 函数返回一个浮点数,该数值在0(包括0)…...

LiveOS 的制作简介

LiveOS 用途:便捷启动 LIVEOS 不占用磁盘空间,系统完全在内存文件系统中运行 常用于 linux 系统救援(文件系统异常导致系统进入紧急模式) 常用于制作 PXE 生产测试 DIAG 系统 开源,免费,可定制化程度高制作工具 lorax lorax 项目是 红帽企业版 OS 的安装器的开源项目 套件包…...

.gitignore 文件

...

目标检测 | 基于Weiler–Atherton算法的IoU求解

**交并比(Intersection over Union, IoU)** 是计算机视觉领域中常用的一个评价指标,尤其在目标检测与图像分割任务中,用于衡量预测结果与真实标注之间的重合程度。目标检测 | 基于Weiler–Atherton算法的IoU求解 IoU 交并比(Intersection over Union, IoU) 是计算机视觉领…...

对比Java学习Go——函数、集合和OOP

Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了…...

MySQL集群高可用架构 - 指南

MySQL集群高可用架构 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-si…...

【WRF-VPRM 预处理器】HEG 安装(服务器)-MRT专业的工具替代

【WRF-VPRM 预处理器】HEG 安装(服务器)-MRT专业的工具替代pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New"…...

如何在Spring MVC中处理请求参数

在Spring MVC中处理请求参数是通过使用各种注解来实现的。以下是在Spring MVC中处理不同类型请求参数的方法。 使用 @RequestParam注解 当你想要从查询字符串中获取单个参数值时,你可以使用 @RequestParam注解。例如: @GetMapping("/search") public String search…...

redis实现缓存2-解决缓存穿透,缓存击穿

具体实现: ShopServiceImpl package com.hmdp.service.impl;import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.hmdp.dto.Result; import com.hmdp.entity.Shop; …...

单克隆抗体人源化:从鼠源缺陷到全人源突破,3 大阶段破解临床应用难题

单克隆抗体(McAb)凭借高特异性、强靶向性,在疾病预防、诊断与治疗中占据核心地位。1975 年,Khler 和 Milstein 创立杂交瘤技术,首次实现人工制备 McAb,为生物医药领域开辟新路径。但初代鼠源性 McAb 存在两大关键缺陷,严重限制临床应用:一是免疫原性高,进入人体后易被…...