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

Few-shot medical image segmentation with high-fidelity prototypes 论文总结

题目:Few-shot medical image segmentation with high-fidelity prototypes(高精确原型)

论文:Few-shot medical image segmentation with high-fidelity prototypes - ScienceDirect

源码:https://github.com/tntek/DSPNet

0  预备知识

一、摘要

研究背景少样本语义分割(FSS)旨在使 预训练模型适应新类别每个类别只需一个带有标签的训练样本

研究问题:尽管基于原型的方法已取得显著成功,但现有模型 仅适用于 物体明显不同且背景不复杂 的成像场景 ,例如自然图像。这使得此类模型在 不符合这两种条件的医学成像中表现不佳

主要工作:为解决这一问题,我们提出了一种新颖的细节自优化原型网络(DSPNet),以构建更全面地代表前景和背景的高精确原型。具体而言,为了在保持捕获的细节语义的同时构建全局语义,我们通过 聚类建模多模态结构 来学习前景原型,然后以 通道方式融合 每个原型。考虑到背景在 空间维度上通常没有明显的语义关系,我们在 稀疏通道感知 调节下整合通道特定的结构信息。

实验效果:在 三个 具有挑战性的医学图像基准数据集上进行的大量实验表明,DSPNet 相较于先前最先进的方法具有优越性。

二、引言

研究背景:在医学领域,由于隐私保护和临床专业知识的要求,注释良好的样本是有限的(数据短缺)。在这种情况下,少样本语义分割(FSS)方法(2022)在这一领域展示了其优势,涉及提取一个或几个支持数据来预测查询数据中的相同类型

主要问题:从支持图像中挖掘原型,以建立与查询图像的相似性。这种方法 利用具有代表性的样本来理解和应用概念知识到新的情况。然而,由于原型提取使用 池化操作,例如掩码平均池化或平均池化,该方案存在固有的局限性:由于池化容易丢失局部细节,传统的原型导致低区别的特征图,混淆前景和背景

相关工作:现有的方法通过逐步挖掘新的原型来解决上述限制,以实现多样化的细节表示。例如,前景的单类原型通过几个局部感知原型(Liu 等人,2020 年)或补偿原型(Zhang 等人,2021 年)得到了丰富。对于背景,采用平均池化在规则网格上生成多样化的局部原型 (Ouyang 等人,2020 年)。这种策略在具有(i)明显不同对象和(ii)背景不十分复杂的成像场景中效果良好。然而,不太适用于具有高度复杂背景的医学图像

主要工作:为解决上述问题,在本文中,我们提出了一种新的细节自优化原型网络(DSPNet)。如图 1 所示(见绿色区域),与构建新的原型不同,我们的方案着重 通过细节自优化来增强现成原型的细节表示,从而生成高精确原型。

在所提出的网络中,我们的细节自优化涉及两个新颖的类似注意力机制的模块,分别称为 前景语义原型注意力(FSPA背景通道结构多头注意力(BCMA)

  • FSPA 中,为了考虑前景清晰的语义,本文利用 超像素聚类  类别级别挖掘语义原型作为细节原型然后 以通道维度的一维卷积方式 将它们融合为单个类别原型,从而整合全局语义同时保留局部语义
  • BCMA 中,由于医学图像中 复杂的背景通常缺乏语义,我们 采用在规则网格上由平均池化生成的背景细节原型,而不是从空间维度挖掘细节信息。然后,通过结合可学习的全局信息和突出稀疏相关通道的调整来探索通道特定的结构信息。最后,每个细节原型的元素都由相应的通道特定结构信息独立地进行通道维度的刷新

贡献

1、一种新颖的原型 FSS 方法 DSPNet增强了原型对复杂细节的自我表示,与以往构建新细节原型的增量范式完全不同。

2、一种类原型的自精化方法 FSPA,集成了 聚类原型将挖掘出的语义细节,以一种类似注意力的方式转化为增强的语义细节,融合基于聚类的局部细节以实现完整前景表示的潜力

3、一种用于背景原型自精炼方法 BCMA,其通过具有 稀疏通道感知正则化的多头通道注意 来 合并通道特定的结构信息,并为背景细节建模提供概念上不同的视图。

三、方法

3.1 框架概述

DSPNet 的分割流程依次遵循三个步骤:

        1、特征提取器 𝑓(⋅) 将支持图像 I^s 和查询图像 I^q 分别嵌入深度特征 F_s 和 F_q

        2、然后通过细节自细化模块(DSR) P_k= DSR(F_s, F_q, M_s) 生成(高精确)原型

        3、最后,通过度量每个像素中每个原型与查询特征之间的余弦相似度来分割查询图像

        在DSR(⋅,⋅,⋅) 模块中,RAN 校准 F_s、F_q 以过滤无关对象和噪声,然后分别通过 FSPABCMA 生成高精确的类别(前景)原型和背景原型

模型在 得到Cosine simiarity 分数 之后,直接使用了双线性插值还原回 “原大小”

3.2 Resemblance Attention Network (相似注意力网络)

作用:在 DSPNet 中,RAN参与 过滤 F_s 和 F_q 之间不相关的纹理和对象

过程:当输入支持和查询特征图 F_s、F_q 时,首先分别将它们重塑为特征向量 A_s 和 A_q。然后,以查询-键-值注意力方式并结合残差连接,A_s、A_q 融合为 F_s,其中 Q = V = A_s,K = A_q。过程可由式 (1) 表示。(实际上就是一个 cross attention)

其中 𝜙(⋅)表示softmax操作,×表示矩阵乘法,𝜙(A^T_s×A_q)表示基于相似度的概率矩阵加权A_s。

3.3 Foreground Semantic Prototype Attention (前景语义原型注意力)

作用:为了获得语义前景的高精确类别原型,FSPA 用于探索前景中的局部语义,并将它们融合以形成全局语义,同时避免局部语义的损失

做法:FSPA 通过基于聚类的细节原型和具有局部语义引导的通道注意力机制来实现这一想法。 

过程

1)细节原型挖掘:为了获取前景更多的局部语义信息,首先在前景上采用 超像素引导的聚类方法,来挖掘 聚类原型

超像素引导的聚类方法(K-means聚类)过程:

具体来说,我们首先通过掩码 M_s 从 F_s 中 "裁剪" (掩码操作) 前景特征(超像素)。之后,通过 像素-超像素关联 和 超像素质心更新交替 进行原型聚类(K-means聚类)。(这里的掩码通过一个双线性的下采调整为提取特征大小一致)

  • 超像素(Superpixel):由多个相邻像素组成的更大单元,这些像素在颜色、亮度和空间上相似。超像素可以看作是像素的集合,它们在视觉上更加连贯。

出自这篇论文:Adaptive Prototype Learning and Allocation for Few-Shot Segmentation

2)细节自优化 和 前景裁剪随后,提出一种类似注意力的 聚类原型融合方法 获得全局语义的同时保留细节语义。聚类原型融合方法由 余弦相似性度量计算基于通道的原型融合计算 构成,公式如下:

其中 𝜙(⋅)是softmax计算;算子 C 和算子 D 分别表示 余弦相似性度量计算基于通道的原型融合计算

余弦相似性度量计算:由于 \hat{F}_s 和 P_c 的大小不同,C 的计算不直接遵循余弦相似度的定义,而是在原型方面进行操作。具体地,使用 P_c 中的每个原型(P^i_c)以一维卷积的方式与支持图像特征 \hat{F}_s 计算相似度,其中卷积计算被余弦相似度计算取代。因此,N_s 个原型会生成 N_s 个相似性矩阵。对于 S_s 中的任意一个矩阵,记作 S_s^i,其计算过程可以表示为:

其中,函数sim1D(n,n) 代表以一维卷积方式工作的相似性计算。
 

基于通道的原型融合计算: 为了将由相似性映射 𝑆_𝑠 表示的知识纳入集群原型𝑃_𝑐,还采用一维卷积来实现 D 的计算。具体来说,计算从卷积滤波器的通道化生成开始。沿着通道维度对𝑃𝑐进行切片,并获得𝐷卷积向量{𝐾_𝑖}^𝐷_{𝑖=1},其中𝐾_𝑖∈R^{1×𝑁_𝑠}包含第i个通道上的聚类原型的语义成分。之后,进行一维卷积以获得融合特征图\bar{𝐹}_𝑠∈R^{𝐷×𝐻×𝑊}。对于第i层的融合特征图,其计算公式可以表示为:

其中𝜙(⋅)是softmax操作,𝜙(𝑆𝑠)代表概率图,𝐾𝑖作为卷积滤波器。

最后,为了抑制融合步骤中引入的噪声,我们通过掩码平均池化将融合特征图 \bar{𝐹}_𝑠  掩码为高精确的前景原型𝑃_𝑓。

其中𝑚_𝑠是支持图像的给定掩码,并调整为与\hat{𝐹̄}_𝑠相同的大小。

   

3.4 Background channel-structural multi-head attention (背景 通道-结构 多头注意力)

动机与前景以聚类原型作为局部细节不同,医学图像中的背景通常在很大范围内是无语义的。因此,BCMA不从空间维度进行挖掘,而是将通道维度中的结构信息视为局部细节。设计了一种可控的通道注意力机制,联合建模通道特定的结构信息,并将其纳入原始背景原型中。

过程:通过平均池化和重塑,将 \hat{𝐹}_𝑠 转换为 𝑃_𝑛 ∈ R^{(𝐻×𝑊)×𝐷}。随后,可控多头通道注意力模块 将 𝑃_𝑛 更新为 高精确背景原型 𝑃_𝑎。最后,将 𝑃_𝑎 重塑为特征图 \tilde{𝐹}_𝑠,并通过 背景原型选择 进一步将特征图 \tilde{𝐹}_𝑠  "裁剪" 为高保真背景原型 𝑃_𝑏。

背景原型选择 好像是通过计算\tilde{𝐹}_𝑠和M_r之间相似度矩阵之后乘回\tilde{𝐹}_𝑠。

可控多头通道注意力模块:

作用:所提出的通道注意力机制以元素的方式将通道结构信息编码到原始背景原型中。

核心思想:施加稀疏的通道感知调节来调整学习到的全局通道关系,从而获得特定通道的结构信息。

输入(D路架构)为了达成原始原型的元素通过不同通道的结构信息独立精化的目的。在Q-K-V的方式中,设置𝐐=𝑄_𝑛,𝐊=𝑃_𝑛,𝐕=𝑃^𝑘_𝑛,其中 𝑄_𝑛 是按通道切片的 𝑃_𝑛(维度重整C -> D C')。𝑃^𝑘_𝑛 是 𝑃_𝑛 中第个原型向量。K,V 被复制D次并分别输入到 D 个头部。

结构该注意力的主要设计为 Incorporation unit(融合单元)和 Global exploration(全局探索单元)。前者预测第 j 个通道的全局结构信息 aj,而后者则作为控制器,注入第 j 个通道特定的调整量 r。以 达成施加稀疏的通道感知调节来调整学习到的全局通道关系,从而获得特定通道的结构信息的目的

过程首先,进行信道相似度计算,捕捉 𝑗-th 信道与其他信道之间关系的动态变化,得到通道相似度 𝒘_𝑐。

其中 𝒘_𝑐∈R^𝐷是通道相似度,其 𝑖th 元素为𝒘_{𝑐, 𝑖},函数cossim(⋅,⋅)测量向量 𝑄^𝑗_𝑛 在集合𝑄_𝑛上的余弦相似度,𝜙是softmax操作。

随后,在 Incorporation unit(融合单元)通过 随机生成的掩码向量m_w 索引 稀疏相关通道,生成调整系数 r。这一过程可以表示为

(这里引入掩码冻结向量作用:用于选择和固定某些特征或通道,以实现稀疏表示或特征选择的目的。)

其中参数 𝛽 表示控制强度。

然后,在 Global exploration(全局探索单元)中,由一个可学习的向量𝒂_𝑗 用于预测第 j 个通道的全局通道结构信息,通过与调整系数 r 相乘得到 背景原型第 j 个通道 特有的结构信息,记为 aj′​。最后,通过加权操作 P^k_n​×a_j′​ 生成𝑃^{𝑘𝑗}_𝑎。(达成 将通道结构信息编码到原始背景原型中 的目的。

 

3.5 Loss function

本文调节二元交叉熵来监督这个模型的训练过程:

其中,hat{m}^j_q(h, w) 是查询掩码标签 m^j_q(h, w) 的预测结果。

 

四、实验

数据集:Abdominal(腹部) CT dataset 、Abdominal MRI dataset、Cardiac(心脏) MRI dataset。

实验设置:在实验设置中,为了确保公平的比较,采用了与SSL-ALPNet相同的图像预处理解决方案。具体而言,沿着通道维度将图像采样为切片,并将每个切片的大小调整为256 × 256像素。此外,沿着通道维度将每个切片重复三次,以适合网络。采用5重交叉验证作为我们的评估方法,其中每个数据集被平均分为5个部分。

评估指标:Dice。

实验细节:使用Pytorch框架实现了提出的模型,并将预训练的完全卷积Resnet 101模型作为特征提取器。在MS-COCO数据集上对Resnet-101模型进行了预训练。由于超像素伪标签包含丰富的聚类信息,有助于解决标注缺失的问题。在开始模型训练之前,以离线方式生成超像素伪标签作为支持图像掩模。对于实验结果,使用随机梯度下降算法,批量大小为1,进行100k次迭代,以最小化等式中的目标。在单个Nvidia TITAN V GPU上进行自我监督训练大约需要4.5小时,内存消耗大约为8.1 GB。

4.1 定量和定性结果

在不同分割场景的三个挑战性的数据集Abdominal CT dataset、Abdominal MRI datase,Cardiac MRI dataset分别进行了评估。并且遵循两个实验设置,其中在Setting-1的实验中测试类可能出现在训练图像的背景中,对数据集中的所有类进行训练和测试,无需任何分区。Setting-2我们在训练阶段直接删除了包含测试类的图像,以确保模型没有见过测试类。

为了更直观观察,如图6中呈现了视觉分割结果。如图所示,DSPNet对大目标(见肝脏)有更好的分割,同时预测小目标(见脾脏)的更精细边界。

4.2 消融研究

从表3的结果中,可以看到,当删除三者中的任何一个时,与DSPNet相比,平均结果在一定程度上有所下降,但都优于SSL-ALPNet(基干)。

如图8所示,当去除其中任何一个时,分割效果都有明显的恶化。例如,当RAN不可用时,大目标分割将具有明显的漏洞(参见肝脏)。由于去除了特定背景的BCMA,一些背景区域被错误地分割。 

五、总结 

本文根据医学图像的局部信息丢失问题,推导了一种新的FSS方法--DSPNet。据我们所知,这是一个初步的努力,从这个角度来看:增强细节表示能力的现成原型的细节自细化。具体地说,我们介绍了两个关键的设计:分别用于前台类原型和后台细节原型生成的FSPA和BCMA模块。其中,前者通过融合从前景聚类而来的细节原型,实现细节自细化。后者将这种自细化建模为结合通道特定的结构信息,采用具有稀疏通道感知调节的多头通道注意。在3个具有挑战性的数据集上的最新实验结果验证了DSPNet的有效性。 

相关文章:

Few-shot medical image segmentation with high-fidelity prototypes 论文总结

题目:Few-shot medical image segmentation with high-fidelity prototypes(高精确原型) 论文:Few-shot medical image segmentation with high-fidelity prototypes - ScienceDirect 源码:https://github.com/tntek/D…...

大模型之路(day 1)

这段时间以来,全身心的投入了研究大模型,虽然还是入门,但比之前已经好了非常多了,不得不说,计算机的学习特别需要强大的自驱力和耐心,以及检索能力。知乎确实在这些知识的分享上做的比csdn好太多了 万事开…...

996引擎-拓展变量:物品变量

996引擎-拓展变量:物品变量 测试代码参考资料对于Lua来说,只有能保存数据库的变量才有意义。 至于临时变量,不像TXT那么束手束脚,通常使用Lua变量就能完成。 测试代码 -- 存:物品拓展strfunction (player)local where =...

集合框架(重点)

1. 什么是集合框架 List有序插入对象,对象可重复 Set无序插入对象,对象不可重复(重复对象插入只会算一个) Map无序插入键值对象,键只唯一,值可多样 (这里的有序无序指的是下标,可…...

IDEA在Git提交时添加.ignore忽略文件,解决为什么Git中有时候使用.gitignore也无法忽略一些文件

文章目录 一、为什么需要.gitignore文件?二、如何在IntelliJ IDEA中高效管理.gitignore文件?1:先下载这个.ignore插件2. 创建或编辑.gitignore文件3. 使用IDEA内置模板快速生成忽略规则4. 实时预览忽略效果5. 检查忽略规则是否生效6.但是一般我们更多时候…...

如何将自己封装的组件发布到npm上:详细教程

如何将自己封装的组件发布到npm上:详细教程 作为前端开发者,我们经常从npm(Node Package Manager)上下载并使用各种第三方库和组件。然而,有时候我们可能会发现自己需要的功能在npm上并不存在,或者我们希望…...

位运算,状态压缩dp(算法竞赛进阶指南学习笔记)

目录 移位运算一些位运算的操作最短 Hamilton 路径(状态压缩dp模板,位运算) 0x是十六进制常数的开头;本身是声明进制,后面是对应具体的数; 数组初始化最大值时用0x3f赋值; 移位运算 左移 把二…...

node.js|环境部署|源码编译高版本的node.js

一、 前言 本文就如何二进制部署和源码编译安装部署node.js环境做一个简单的介绍 node的版本大体是以18版本为界限,也就是说18版本之前对glibc版本没有要求,其后的版本都对glibc版本有要求,node的版本越高,glibc需要的版本也越…...

通信安全员ABC证的考试内容包括哪些?

通信安全员 ABC 证的考试内容整体上围绕通信安全相关的法律法规、安全技术、安全管理等方面展开,但在具体侧重点上有所不同,以下是详细介绍: 通信安全基础知识 通信原理:包含模拟通信和数字通信的基本原理,如调制、解…...

Oracle--SQL基本语法

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 1、SQL语句介绍 在Oracle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给…...

windows服务器及网络:论如何安装(虚拟机)

今天我要介绍的是:在Windows中对于安装系统(虚拟机的步骤以及相关的安装事宜),事不宜迟,让我们来看看系统安装(虚拟机)是怎么操作的: 对现在来说,安装电脑系统已经是非常…...

【网络篇】从零写UDP客户端/服务器:回显程序源码解析

大家好呀 我是浪前 今天讲解的是网络篇的第四章:从零写UDP客户端/服务器:回显程序源码解析 从零写UDP客户端/服务器:回显程序源码解析 UDP 协议特性​核心类介绍​ UDP的socket应该如何使用:1: DatagramSocket2: DatagramPacket回…...

学习笔记:黑马程序员JavaWeb开发教程(2025.3.23)

11.2 案例-文件上传-简介 文件上传的前端页面的代码需要放到springboot项目的static里面,也就是resource文件夹下面的static文件夹里面 服务端接收前端上传的数据,再服务端定义一个controller来接收数据,再controller中定义一个…...

提示词构成要素对大语言模型跨模态内容生成质量的影响

提示词构成要素对大语言模型跨模态内容生成质量的影响 提示词清晰度、具象性与质量正相关 限定指向性要素优于引导指向性要素 大语言模型生成内容保真度偏差 以讯飞星火大模型为实验平台,选取100名具备技术素养的人员,从提示词分类、构成要素和实践原则归纳出7种提示词组…...

浅聊docker的联合文件系统

前言: 在我们pull镜像的时候,就会发现一个神奇的地方,在将镜像pull到本地的时候它是分层下载的,如下图: 这时候我就有一个疑问,为什么是分层下载的?怎么和我们平时下载软件的时候不一样呢? 联…...

计算机视觉cv入门之Haarcascade的基本使用方法(人脸识别为例)

Haar CascadeXML特征分类器,是一种基于机器学习的方法,它利用了积分图像(或总面积)的概念有效地提取特征(例如,边缘、线条等)的数值。“级联分类器”即意味着不是一次就为图像中的许多特征应用数百个分类器,而是一对一地应用分类器…...

【NLP 62、实践 ⑮、基于RAG + 智谱语言模型的Dota2英雄故事与技能介绍系统】

羁绊由我而起,痛苦也由我承担 —— 25.4.14 英雄介绍文件: 通过网盘分享的文件:RAG 智谱语言模型的Dota2英雄故事与技能介绍系统 链接: https://pan.baidu.com/s/1G7Xo5TRvFl2BzUnE0NFaBA?pwd4d4j 提取码: 4d4j --来自百度网盘超级会员v3的…...

Keil MDK 编译问题:function “HAL_IncTick“ declared implicitly

问题与处理策略 问题描述 ..\..\User\stm32f1xx_it.c(141): warning: #223-D: function "HAL_IncTick" declared implicitlyHAL_IncTick(); ..\..\User\stm32f1xx_it.c: 1 warning, 0 errors问题原因 在 stm32f1xx_it.c 文件中调用了 HAL_IncTick(),但…...

OpenCV基础01-图像文件的读取与保存

介绍: OpenCV是 Open Souce C omputer V sion Library的简称。要使用OpenCV需要安装OpenCV包,使用前需要导入OpenCV模块 安装 命令 pip install opencv-python 导入 模块 import cv2 1. 图像的读取 import cv2 img cv2.imread(path, flag)这里的flag 是可选参数&…...

IP数据报

IP数据报组成 IP数据报(IP Datagram)是网络中传输数据的基本单位。 IP数据报头部 版本(Version) 4bit 告诉我们使用的是哪种IP协议。IPv4版本是“4”,IPv6版本是“6”。 头部长度(IHL,Intern…...

视频联网平台与AI识别技术在电力行业的创新应用

一、电力行业智能化转型的迫切需求 在能源革命与数字化转型的双重推动下,电力行业正面临着前所未有的智能化升级需求。随着特高压电网的大规模建设和新能源占比的不断提高,传统的电力运维管理模式已经难以满足现代电网安全、高效运行的要求。据统计&…...

Apache Parquet 文件组织结构

简要概述 Apache Parquet 是一个开源、列式存储文件格式,最初由 Twitter 与 Cloudera 联合开发,旨在提供高效的压缩与编码方案以支持大规模复杂数据的快速分析与处理。Parquet 文件采用分离式元数据设计 —— 在数据写入完成后,再追加文件级…...

深度学习方向急出成果,是先广泛调研还是边做实验边优化?

目录 有限资源下本科生快速发表深度学习顶会论文的实战策略 1.短周期内可出成果的研究路径 2.论文阅读与复现的优先顺序 3.无一对一指导时的调研与实验组织 4.成功案例:本科生顶会论文经验 5.快速上手的研究子方向推荐 大家好这里是AIWritePaper官方账号&…...

Python 深度学习实战 第11章 自然语言处理(NLP)实例

Python 深度学习实战 第11章 自然语言处理(NLP)实例 内容概要 第11章深入探讨了自然语言处理(NLP)的深度学习应用,涵盖了从文本预处理到序列到序列学习的多种技术。本章通过IMDB电影评论情感分类和英西翻译任务,详细介绍了如何使…...

9、Hooks:现代魔法咒语集——React 19 核心Hooks

一、魔法咒语的本质革新 "类组件如同古老的魔杖挥舞仪式,而Hooks是新时代的无杖施法!"霍格沃茨魔法研究院的魔杖动力学教授惊叹道。React Hooks通过函数式能量场重构了魔法运作模式,让组件能量流转如尼可勒梅的炼金术。 ——以《国…...

FutureTask底层实现

一、FutureTask的基本使用 平时一些业务需要做并行处理,正常如果你没有返回结果的需求,直接上Runnable。 很多时候咱们是需要开启一个新的线程执行任务后,给我一个返回结果。此时咱们需要使用Callable。 在使用Callable的时候,…...

深入浅出:LDAP 协议全面解析

在网络安全和系统管理的世界中,LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是一个不可忽视的核心技术。它广泛应用于身份管理、认证授权以及目录服务,尤其在企业级环境中占据重要地位。本文将从基…...

学习笔记—C++—string(练习题)

练习题 仅仅反转字母 917. 仅仅反转字母 - 力扣(LeetCode) 题目 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。 返回反转后的 s 。…...

论文阅读:2024 arxiv DeepInception: Hypnotize Large Language Model to Be Jailbreaker

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 DeepInception: Hypnotize Large Language Model to Be Jailbreaker DeepInception:催眠大型语言模型,助你成为越狱者 https://arxiv.org/pdf/2311.0…...

OC底层原理【一】 alloc init new

OC底层原理【一】 alloc init && new 文章目录 OC底层原理【一】 alloc init && new前言allocslowpath(checkNil && !cls)) 和 fastpath(!cls->ISA()->hasCustomAWZ())!cls->ISA()->hasCustomAWZ()) obj->initInstanceIsa();将类与isa关…...

集合框架拓展--stream流的使用

Stream(JDK8新特性) 什么是Stream? 也叫stream流,是JDK8开始新增的一套API(java.util.stream.*),可以用于操作集合或数组中的数据 优势:Stream流大量地结合了Lambda的语法风格来编程&#xff…...

Beszel​​ 轻量级服务器监控平台的详细安装步骤

什么是 Beszel Beszel 是一个轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能。 它拥有友好的 Web 界面、简单的配置,并且开箱即用。它支持自动备份、多用户、OAuth 身份验证和 API 访问 https://beszel.dev/zh/guide/what-is-besz…...

Spring 微服务解决了单体架构的哪些痛点?

1. 部署困难 (Deployment Difficulty & Risk) 单体痛点: 整体部署: 对单体应用的任何微小修改(哪怕只是一行代码),都需要重新构建、测试和部署整个庞大的应用程序。部署频率低: 由于部署过程复杂且风险高,发布周期通常很长&a…...

Kotlin delay方法解析

本文记录了kotlin协程(Android)中delay方法的字节码实现,并解析了delay方法如何实现挂起操作。 一、delay方法介绍 1.1、delay方法使用举例 class TestDelay {suspend fun testDelay() {Log.d("TestDelay", "before delay")delay(1000)Log.d…...

C# 类型、存储和变量(用户定义类型)

本章内容 C#程序是一组类型声明 类型是一种模板 实例化类型 数据成员和函数成员 预定义类型 用户定义类型 栈和堆 值类型和引用类型 变量 静态类型和dynamic关键字 可空类型 用户定义类型 除了C#提供的16种预定义类型,还可以创建自己的用户定义类型。有6种类型可以…...

C语言之高校学生信息快速查询系统的实现

🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 C语言之高校学生信息快速查询系统的实现 目录 任务陈述与分析 问题陈述问题分析 数据结构设…...

Windows串口通信

Windows串口通信相比较Android串口通信,在开发上面相对方便一些。原理都是一样,需要仔细阅读厂商设备的串口通信协议。结合串口调试助手进行测试,测试通过后,编写代码实现。 比如近期就接触到了一款天平,其最大测量值为100g,测量精度0.001g。 拿到手之后我就先阅读串口通…...

从零开始用Pytorch实现LLaMA 4的混合专家(MoE)模型

近期发布的LLaMA 4模型引入了混合专家(Mixture of Experts, MoE)架构,旨在提升模型效率和性能。尽管社区对LLaMA 4的实际表现存在一些讨论,但MoE作为一种重要的模型设计范式,继Mistral等模型之后再次受到关注。 所以我…...

python3GUI--仿网课答题播放器 By:PyQt5(分享)

文章目录 一.前言二.相关知识1.PyQt52.QMediaPlayer3.QThread4.Sqlite3 二.展示1.主界面2.课程播放&问答3.字幕调整4.播放列表折叠5.添加课程 三.心得与分享1.数据本地化2.自定义组件3.系统流程图与代码量4.免责声明 四&#…...

Python基础总结(八)之循环语句

文章目录 一、for循环1.1 for循环格式1.2 for ...else1.3 for...break1.4 for...continue 二、while循环2.1 while循环格式2.2 while...break2.3 while...continue2.4 while ...else 循环语句就如其名,就是重复的执行一段代码,直到满足退出条件时&#x…...

21. git apply

基本概述 git apply 的作用是&#xff1a;应用补丁文件 基本用法 1.命令格式 git apply [选项] <补丁文件>2.应用补丁 git apply patchfile.patch将补丁应用到工作目录&#xff0c;但不会自动添加到暂存区&#xff08;需手动 git add&#xff09; 常用选项 1.检查…...

第一章:MySQL视图基础

1. 视图是什么&#xff1f; ​​定义​​&#xff1a;视图&#xff08;View&#xff09;是一种虚拟表&#xff0c;其内容基于一个或多个真实表&#xff08;基表&#xff09;的查询结果。视图不实际存储数据&#xff0c;而是通过查询动态生成数据。​​核心特点​​&#xff1a…...

深入理解基线检查:网络安全的基石

深入理解基线检查&#xff1a;网络安全的基石 一、引言 在信息技术飞速发展的今天&#xff0c;网络安全已成为企业和组织正常运营的关键保障。从日常办公系统到关键业务应用&#xff0c;任何环节的安全漏洞都可能导致严重的后果&#xff0c;如数据泄露、系统瘫痪等。基线检查作…...

33-公交车司机管理系统

技术&#xff1a; 基于 B/S 架构 SpringBootMySQLvueelementui 环境&#xff1a; Idea mysql maven jdk1.8 node 用户端功能 1.首页:展示车辆信息及车辆位置和线路信息 2.模块:车辆信息及车辆位置和线路信息 3.公告、论坛 4.在线留言 5.个人中心:修改个人信息 司机端功能…...

【AI实践】使用DeepSeek+CherryStudio绘制Mermaid格式图表

目录 工具准备创建DeepSeek API Key安装CherryStudioMermaid在线编辑器 绘制图表编写提示词在CherryStudio中调用DeepSeek复制源码到Mermaid编辑器中进行微调 图表示例流程图思维导图甘特图 工具准备 创建DeepSeek API Key 打开DeepSeek开放平台&#xff0c; 注册并充值成功后…...

TCP报文段解析:从抽象到具象的趣味学习框架

TCP报文段解析&#xff1a;从抽象到具象的趣味学习框架 一、What&#xff1a;TCP报文段长什么样&#xff1f; 核心结构&#xff08;类比快递包裹&#xff09;&#xff1a; 复制 下载 | 源端口&#xff08;16位&#xff09;| 目的端口&#xff08;16位&#xff09;| |-----…...

B+树节点与插入操作

B树节点与插入操作 设计B树节点 在设计B树的数据结构时&#xff0c;我们首先需要定义节点的格式&#xff0c;这将帮助我们理解如何进行插入、删除以及分裂和合并操作。以下是对B树节点设计的详细说明。 节点格式概述 所有的B树节点大小相同&#xff0c;这是为了后续使用自由…...

rollup使用讲解

rollup 总结 什么是 rollup? rollup 是一个 JavaScript 模块打包器,在功能上要完成的事和 webpack 性质一样,就是将小块代码编译成大块复杂的代码,例如 library 或应用程序。在平时开发应用程序时,我们基本上选择用 webpack,相比之下,rollup.js 更多是用于 library 打…...

高边开关和低边开关的区别

高边驱动和低边驱动的区别 在高边驱动和低边驱动中&#xff0c;开关的位置直接影响电路在负载短路时的安全性和电流路径。以下是关键原理的分步解释&#xff1a; 1. 高低边驱动的结构对比 高边驱动&#xff08;High-Side Drive&#xff09; 电路结构&#xff1a; 电源正极 →…...

PG psql --single-transaction 参数功能

文章目录 PG psql --single-transaction 参数功能 PG psql --single-transaction 参数功能 test.sql 文件 create table test1(id int); CREATE OR REPLACE FUNCTION func_test() RETURNS INTEGER AS $BODY$ BEGINxxxreturn 0; END; $BODY$ LANGUAGE plpgsql VOLATILE CALLE…...