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

【结肠息肉AI论文集】ASPS: Augmented Segment Anything Model for Polyp Segmentation

摘要

息肉分割在结直肠癌诊断中起着关键作用。最近,Segment Anything Model(SAM)的出现为息肉分割带来了前所未有的潜力,其在大规模数据集上的强大预训练能力使其备受关注。然而,由于自然图像和内窥镜图像之间存在领域差异,SAM在息肉分割中面临两个限制。首先,其基于Transformer的结构优先考虑全局和低频信息,可能会忽略局部细节,从而引入偏差。其次,在应用于内窥镜图像时,其较差的分布外(OOD)性能导致预测结果不佳和置信度输出偏差。为解决这些挑战,我们提出了一种名为ASPS(Augmented SAM for Polyp Segmentation)的新方法,配备了两个模块:跨分支特征增强(CFA)和不确定性引导预测正则化(UPR)。CFA通过将可训练的CNN编码器分支与冻结的ViT编码器相结合,实现了特定领域的知识整合,同时增强了局部特征和高频细节。此外,UPR巧妙地利用SAM的IoU分数来减少训练过程中的不确定性,从而提高OOD性能和领域泛化能力。广泛的实验结果证明了所提方法在提高SAM息肉分割性能方面的有效性和实用性。我们的代码可在GitHub - HuiqianLi/ASPS获取。

引言

自动息肉分割是结直肠癌诊断中的关键工具,有助于实施有效的干预措施和及时的治疗策略。Polyp-PVT[5]和SSFormer[22]利用金字塔视觉变换器(Pyramid Vision Transformer)进行息肉分割;CFANet[35]通过跨层特征聚合网络整合边界信息;Endo-FM[23]捕捉时空依赖性以构建基础模型。然而,受限于模型规模,现有方法在特征表示和提取方面的能力仍显不足,难以充分捕捉息肉的形态和特征。此外,数据集规模有限可能限制了现有方法的多样性和泛化能力。最近,推出了Segment Anything Model[12](SAM)。SAM在最大的分割数据集SA-1B上进行预训练,在各种下游任务中展现出卓越的分割能力。凭借其庞大的模型规模和数据规模,这一创新方法为息肉分割领域带来了新的视角,并且在表示和特征提取能力方面超越了现有方法。

然而,SAM在息肉分割任务中的表现并不令人满意[34],这是由于训练数据和内窥镜图像之间存在领域差异。这导致了两个主要问题:首先,SAM未能充分捕捉息肉图像的独特特征,导致其学习到的表示存在偏差。其次,对于分布外(OOD)数据,它产生了错误的预测和不准确的置信度估计。此外,由于依赖提示,SAM在临床应用中的便利性受到了严重影响。尽管有几种方法对SAM进行了改进,例如MedSAM[15],但这些方法要么依赖提示,要么直接对大型模型进行微调。SAMUS[14]有效地整合了CNN和ViT,但其设计相当复杂,特别适合处理小图像。因此,这些方法的有效性在一定程度上受到了限制。为了应对语义分割中的无监督领域自适应挑战,已经提出了多种方法。MIC[8]提出了一个掩码图像一致性模块,用于目标领域上下文学习;上下文感知领域自适应[26]通过交叉注意力改进上下文转移。然而,领域特定信息的整合和不确定性的减少仍未被探索。

为解决这些问题,我们从领域自适应的角度出发,提出了一种基于SAM的新方法,旨在增强特征提取能力和泛化能力,而不依赖于提示。我们提出了跨分支特征增强模块(CFA)和不确定性引导预测正则化模块(UPR)。CFA引入了一个额外的可训练卷积神经网络(CNN)编码器分支,作为冻结的视觉变换器(ViT)编码器的补充,以捕捉多尺度和多层次的特征。UPR调整归一化层以促进在内窥镜领域的适应,并利用提示以确保准确的置信度估计,从而提高SAM的OOD性能。

总之,我们的主要贡献如下:(1)我们构建了一种名为ASPS的新型基于SAM的模型,以增强息肉分割的特征学习能力和领域泛化能力,无需提示即可展现出强大的性能。(2)我们引入了跨分支特征增强模块(CFA),引入了一个额外的CNN编码器分支作为ViT编码器的补充。此外,我们提出了不确定性引导预测正则化模块(UPR),利用提示在训练期间减少不确定性并提高SAM的领域泛化能力。(3)在五个常见的息肉数据集上的广泛实验表明了我们方法的有效性和优越性。

图1:我们用于息肉分割的增强型Segment Anything模型(ASPS)的概述。跨分支特征增强模块(CFA)旨在学习多尺度特征和多层次表示。不确定性引导预测正则化模块(UPR)旨在最小化预测的不确定性,以提高模型的领域泛化能力。

方法

概述:我们提出的网络如图1所示。为解决SAM的领域退化问题,我们利用两个模块来增强其原始的特征提取能力和领域泛化能力。跨分支特征增强(CFA)模块将CNN编码器特征与全局ViT信息相结合,从而实现泛化的特征表示学习。这种整合通过将深层信息聚合到浅层,并从浅层引入位置信息,从而促进更精细的分割输出。同时,不确定性引导预测正则化(UPR)模块旨在最小化不确定性并在训练期间校准置信度。我们提出的网络遵循端到端训练,无需提示,联合优化两个模块以实现最佳性能。

2.1 跨分支特征增强模块(CFA)

尽管SAM在许多图像分割任务中取得了巨大成功,但在息肉分割任务中仍存在一些限制。主要原因之一是SAM的图像编码器无法从未见的内窥镜图像中有效提取足够的特征。为解决这一问题,CFA模块旨在学习多尺度特征和多层次表示,从而增强编码器的特征提取能力。

首先,为了实现自动分割,我们修改了SAM的架构,移除了其提示输入和提示编码器组件,同时保留了其图像编码器和掩码解码器部分。最近的研究[17]表明,ViT更专注于低频信号,而CNN更擅长处理高频信号。因此,我们引入了一个并行的基于CNN的分支,以弥补高频和局部特征的缺失。此外,我们通过提出一个额外的多头跨分支注意力块来增强SAM的掩码解码器,以促进从ViT编码器和CNN编码器提取的特征的整合。对于ViT分支的特征 Fv​ 和CNN的特征 Fc​,跨分支注意力可以表示如下:

其中 Q=Fv​WQ,K=V=Fc​WK,d 是 Fv​ 每个头的通道数。考虑到CNN特征提供了更精确的位置信息,我们将SAM原始掩码解码器中的位置嵌入替换为CNN编码器的最终输出特征。此外,我们将跨分支注意力机制整合到掩码解码器的注意力块中,重复此过程两次,以确保从ViT和CNN编码器整合多尺度特征,如图2所示。

其次,为了获得更精确的分割结果,我们将编码器中的高级上下文和低级边界信息与SAM的解码器特征相结合,以增强输出信息。具体来说,我们将从ViT编码器的中间嵌入中获得的浅层局部特征、从图像嵌入中获得的最终全局特征以及CNN编码器的最终特征相结合,如图2所示。这种方法充分利用了每个编码器分支的丰富边缘信息、广泛的全局上下文信息和局部位置细节。因此,我们可以有效地整合来自ViT和CNN的多层次特征。

2.2 不确定性引导预测正则化模块(UPR)

为了增强SAM的泛化能力,我们提出了一种新的训练策略,涉及在编码器中选择性激活LayerNorm。我们还使用真实标签作为“提示”,通过校正置信度来进一步指导训练过程。

鉴于SAM在自然数据上进行训练,其在息肉图像上的性能可能会因领域转移而下降。如先前建议的[13],通过调整归一化层是一种特别有效的领域转移技术。尽管引入LayerNorm[1]可能会减少训练时间,但它从根本上改变了输入数据的分布。当将SAM从自然图像转移到内窥镜图像时,数据分布和相应的特征空间分布都会发生变化。这些分布差异可能会引起内部协变量偏移,从而影响模型的性能。为了提高SAM在内窥镜领域的泛化能力,我们对编码器的归一化层进行微调。在这个过程中,模型有效地适应目标领域的数据分布,并减轻内部协变量偏移的影响。

具体来说,SAM的ViT编码器的LayerNorm分为(1)Transformer块归一化和(2)颈部层归一化,如图2(a)所示。鉴于颈部层的特征更接近编码器的输出特征,我们最终决定训练颈部层归一化,这相当于对预训练的ViT编码器的特征进行重新归一化。巧合的是,在这项工作[32]中,调整归一化层的直接技术可以惊人地获得与微调所有参数的稳健基线相当甚至更优的性能。

此外,先前的研究[16]表明,具有较低不确定性的预测往往表现出更好的分布外(OOD)性能,这对于领域适应也是有益的。SAM生成一个IoU分数输出,这本质上可以表示不确定性(或相反,置信度)。然而,在预测过程中,SAM可能会对未见数据产生高置信度的错误预测,这是不希望的。为缓解这一问题,我们努力在训练期间减少模型的不确定性(即增加置信度)。受[4]的启发,我们使用真实标签作为提示来指导模型的学习。首先,我们将SAM的IoU分数表示为图像级置信度 ci​。然后,我们使用式(2)计算像素级置信度 cp​,以细化每个像素的不确定性,其中 Up​∈RB×1×H×W。

术语 Up​ 表示像素不确定性,定义为 Up​=1−σ(∣P∣)。 这里,σ 表示 Sigmoid 函数,而 P 表示输出预测。最终置信度计算为图像级置信度和像素级置信度的和,表示为 c=21​(ci​+cp​)。这种置信度由伯努利分布决定,是否使用真实标签作为提示。换句话说,如果置信度足够低,我们认为模型需要一个具体的答案提示来学习正确的掩码预测。因此,答案被用作提示,否则则不需要。提示的权重由置信度 c 决定,表示如下:

然而,通过最小化损失函数,模型会倾向于使 c=0,从而使 P′ 始终等于真实标签(GT)。这意味着模型实际上并没有真正学习。因此,引入了置信度损失来监督 c,当 c→0 时,置信度损失会增加,置信度损失定义如下:

Lc​=−log(c). (4)

最终损失函数是分割损失 Ls​ 和置信度损失 Lc​ 的和,如式(5)所示。这里,λ 表示一个超参数。具体来说,使用的分割损失是交叉熵损失(CE loss)、Dice损失和均方误差损失(MSE loss)的组合,表示为 Ls​=Lce​+0.5⋅Ldice​+Lmse​。

L=Ls​+λLc​. (5)

相关文章:

【结肠息肉AI论文集】ASPS: Augmented Segment Anything Model for Polyp Segmentation

摘要 息肉分割在结直肠癌诊断中起着关键作用。最近,Segment Anything Model(SAM)的出现为息肉分割带来了前所未有的潜力,其在大规模数据集上的强大预训练能力使其备受关注。然而,由于自然图像和内窥镜图像之间存在领域…...

MHA详解

MHA(Master High Availability)是一个用于 MySQL 数据库的高可用性解决方案。它基于 MySQL 主从复制机制实现,通过自动化的方式进行故障检测和自动故障转移操作,确保在 MySQL 主节点(Master)发生故障时&…...

蓝桥杯单片机刷题——通过按键触发串口传输电压值

设计要求 通过内部ADC完成电位器RB2的输出电压检测,并显示在数码管上; 通过串口向PC端返回当前检测的电压值。 按键“S4”定义为发送按键,按下按键S4,串口向PC端发送当前检测的电压值。 串口发送格式: U:1.25V\r\…...

github fatal Authentication failed for解决

常用的生成令牌方式不多介绍&#xff0c;参考1 得到令牌后替换url 格式为 https://你的令牌github.com/<USERNAME>/<REPO>.git查看仓库url git remote -v假如为 https://github.com/jiang/megatron.git 令牌为CCCC 则将“令牌”插入github之前 使用 git remote …...

计算机网络基础知识

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

Debian/Ubuntu Server高效禁用海外IP访问的一种方法

面对越来越多的海外IP扫描、攻击&#xff0c;让服务器损失大量的性能&#xff0c;影响服务器提供正常的对外服务&#xff0c;同时给自己的服务器处理风险之中&#xff0c;本文讲述了一种使用ufw防火墙的方式高效阻止海外IP的一种方法。 阻止IP访问的方法有很多种&#xff0c;这…...

2025年4月第2周 github的AI科技工具汇总

以下是2025年4月第2周GitHub上值得关注的AI科技工具与生态动态汇总&#xff0c;结合官方发布及开发者社区热点整理&#xff1a; AI编程工具升级 GitHub Copilot Agent Mode 全量发布 核心功能&#xff1a;在VS Code中启用后&#xff0c;可自主完成多文件代码重构、测试驱动开发…...

RIP V2路由协议配置实验CISCO

1.RIP V2简介&#xff1a; RIP V2&#xff08;Routing Information Protocol Version 2&#xff09;是 RIP 路由协议的第二版&#xff0c;属于距离矢量路由协议&#xff0c;主要用于中小型网络环境。相较于 RIP V1&#xff0c;RIP V2 在功能和性能上进行了多项改进&#xff0c…...

Python-Django+vue二手电子设备交易平台功能说明

❥(^_-) 上千个精美定制模板,各类成品Java、Python、PHP、Android毕设项目,欢迎咨询。 ❥(^_-) 程序开发、技术解答、代码讲解、文档,💖文末获取源码+数据库+文档💖 💖软件下载 | 实战案例 💖文章底部二维码,可以联系获取软件下载链接,及项目演示视频。 本项目…...

DeepSeek 教我LLVM(2) : MCTargetDesc 核心模块有哪些?

在 LLVM 中&#xff0c;MCTargetDesc&#xff08;Machine Code Target Description&#xff09;是描述目标架构机器代码生成的核心模块&#xff0c;其核心组件可分为以下几类&#xff1a; 一、目标架构元数据 MCInstrInfo 功能&#xff1a;定义指令的元数据&#xff08;操作数、…...

Linux:shell运行原理+权限

1.shell的运行原理 如果我们打开了命令终端或者是xshell进行远程登录服务器&#xff0c;就会看到命令行&#xff0c;如下图所示&#xff1a; 这个命令行本身也是系统中一个运行起来的程序&#xff0c;它用来接收用户的输入&#xff0c;帮用户来执行指令&#xff0c;将运行结果展…...

英伟达Llama-3.1-Nemotron-Ultra-253B-v1语言模型论文快读:FFN Fusion

FFN Fusion: Rethinking Sequential Computation in Large Language Models 代表模型&#xff1a;Llama-3.1-Nemotron-Ultra-253B-v1 1. 摘要 本文介绍了一种名为 FFN Fusion 的架构优化技术&#xff0c;旨在通过识别和利用自然并行化机会来减少大型语言模型&#xff08;LLM…...

什么是A2A协议?什么是MCP协议?A2A和MCP协议哪个更好?

什么是A2A协议&#xff1f;什么是MCP协议&#xff1f;A2A和MCP协议哪个更好&#xff1f; 摘要 在人工智能领域&#xff0c;A2A协议&#xff08;Agent-to-Agent协议&#xff09;和MCP协议&#xff08;Model Context Protocol&#xff09;是两个重要的标准&#xff0c;它们分别…...

剑指Offer(数据结构与算法面试题精讲)C++版——day12

剑指Offer&#xff08;数据结构与算法面试题精讲&#xff09;C版——day12 题目一&#xff1a;小行星碰撞题目二&#xff1a;每日温度题目三&#xff1a;直方图最大矩形面积附录&#xff1a;源码gitee仓库 题目一&#xff1a;小行星碰撞 由题意可知&#xff0c;这里我们可使用栈…...

Leetcode131:分割回文串——回溯算法

Leetcode131&#xff1a;分割回文串——回溯算法 给一个字符串aab&#xff0c; 如何分割&#xff0c;使得子串 都是回文串&#xff0c;返回所有的分割方案。 答&#xff1a;1、aa&#xff0c;b。 2、a&#xff0c;a, b. 重点&#xff0c;想想树怎么画的。 发现&#xff1a;所有…...

Nginx常用工具

Nginx常用工具 Nginx常用工具vscode配置Nginx插件在线生成Nginx配置文件Nginx可视化配置工具 Nginx常用工具 编写Nginx配置时,使用VSCodeNginx插件,能实现自动补全格式化配置. vscode配置Nginx插件 Nginx代码高亮插件&#xff1a; nginx-formatter Nginx代码格式化插件&#…...

算法——回溯

学习目标&#xff1a; 掌握算法入门知识 学习内容&#xff1a; 回溯的定义例题详细步骤讲解&#xff08;求子集、求全排列&#xff09; 1. 回溯的定义 回溯法是一种通过 试探性搜索 来求解问题的算法思想。一个复杂问题的解决方案是由若干个小的决策步骤组成的决策序列&…...

【图片识别改名工具】如何识别图片中文字内容,并根据文字对图片批量重命名批量改名,基于WPF和腾讯OCR的完整实现

​​办公场景​​ ​​批量处理图片文件​​:用户有一批图片文件,图片中包含文字信息(如编号、日期、名称等),需要根据图片中的文字内容对图片进行重命名。​​自动化办公​​:在办公场景中,用户需要将图片文件按内容分类或归档,手动重命名效率低下,自动化工具可以大幅…...

C语言超详细指针知识(一)

通过前面一段学习C语言的学习&#xff0c;我们了解了数组&#xff0c;函数&#xff0c;操作符等相关知识&#xff0c;今天我们将要进行指针学习&#xff0c;这是C语言中较难的一个部分&#xff0c;我将带你由浅入深慢慢学习。 1.内存与地址 在正式学习指针前&#xff0c;我们首…...

【实战手册】8000w数据迁移实践:MySQL到MongoDB的完整解决方案

🔥 本文将带你深入解析大规模数据迁移的实践方案,从架构设计到代码实现,手把手教你解决数据迁移过程中的各种挑战。 📚博主其他匠心之作,强推专栏: 小游戏开发【博主强推 匠心之作 拿来即用无门槛】文章目录 一、场景引入1. 问题背景2. 场景分析为什么需要消息队列?为…...

本地部署DeepSeek-R1,搭建本地知识库

本地部署DeepSeek-R1,搭建本地知识库 本章节内容是参照哔哩哔哩上的【一拳S7】作者分享的视频教程&#xff08;【喂饭教程】20分钟教会你本地部署DeepSeek-R1&#xff0c;并搭建自己的知识库&#xff01;小白也能轻松上手&#xff01;!&#xff09;搭建的。 概述&#xff1a;本…...

多链协议和跨链桥

文章目录 多链协议和跨链桥一、核心功能与分类二、主流协议技术对比三、关键技术机制四、典型应用场景五、核心风险与挑战 多链协议和跨链桥 一、核心功能与分类 多链协议与跨链桥旨在解决区块链生态的孤岛效应&#xff0c;实现资产与数据的跨链互通。 主要分为两类&#xf…...

2025.4.9 华为机考 第1题-补丁版本升级

目录 题目内容样例1样例2思考思路算法思路实现代码&#xff08;封装Class中&#xff09; 题目内容 样例1 样例2 思考思路 题目让我们找出所有迭代次数最多的补丁版本&#xff0c;并且按字典序排列输出。迭代次数指的是从该版本到根节点的路径长度&#xff0c;而根节点的迭代次…...

Qt平台+三维建模+动画演示+工业风展示

三维建模不止于形&#xff0c;界面定制不止于皮&#xff0c;实时交互不止于快。 我们专注程序界面定制&#xff0c;尤其擅长&#xff1a; &#x1f527; Qt平台 精准开发 &#x1f9ca; 三维建模 动画演示 工业风展示 ⚡ 实时交互系统 支持多线程响应、动态数据绑定 &#x1…...

通付盾风控智能体(RiskAgent): 神烦狗(DOGE)

在数字化业务高速发展的今天&#xff0c;风控系统已成为企业抵御黑产、欺诈、保障交易安全的核心防线。然而传统风控面临人力依赖高与策略滞后性等挑战&#xff0c;数据分析师需每日从海量数据中手动提炼风险特征、设计防护规则&#xff0c;耗时费力&#xff1b;新策略从发现到…...

Anaconda环境管理及 pycharm、jupyter notebook 的配置

为什么要Anaconda环境管理&#xff0c;因为不同的项目可能使用的环境是不一样的&#xff0c;比如说有一个项目要用到pytorch0.4&#xff0c;另一个要用到pytorch1.0&#xff0c;我们不可能在一个环境中既装pytorch0.4&#xff0c;又装pytorch1.0&#xff0c;因此我们在用pytorc…...

DevOps与功能安全:Perforce ALM通过ISO 26262合规认证,简化安全关键系统开发流程

本文来源perforce.com&#xff0c;由Perforce中国授权合作伙伴、DevSecOps解决方案提供商-龙智翻译整理。 近日&#xff0c;Perforce ALM&#xff08;原Helix ALM&#xff09;通过了国际权威认证机构 TV SD的ISO 26262功能安全流程认证&#xff01;该认证涵盖Perforce ALM解决方…...

OpenCV 伪彩色处理

伪彩色处理是将灰度图像通过颜色映射转换为彩色图像的技术&#xff0c;常用于增强可视化效果或突出显示特定灰度范围。OpenCV 提供了多种方法实现伪彩色处理。 1. 使用 applyColorMap 函数 OpenCV 提供了 cv::applyColorMap() 函数&#xff0c;支持多种预定义的色彩映射&…...

【物联网】PWM控制蜂鸣器

文章目录 一、PWM介绍1.PWM的频率2.PWM的周期 二、PWM工作原理分析三、I.MX6ull PWM介绍1.时钟信号2.工作原理3.FIFO 四、PWM重点寄存器介绍1.PWM Control Register (PWMx_PWMCR)2.PWM Counter Register (PWMx_PWMCNR)3.PWM Period Register (PWMx_PWMPR)4.PWM Sample Register…...

centos-stream-9上安装nvidia驱动和cuda-toolkit

这里写目录标题 驱动安装1. 更新系统2. NVIDIA GPU安装检查系统是否安装了 NVIDIA GPU2.1 首先&#xff0c;使用以下命令更新 DNF 软件包存储库缓存&#xff1a;2.2 安装编译 NVIDIA 内核模块所需的依赖项和构建工具2.3 在 CentOS Stream 9 上添加官方 NVIDIA CUDA 软件包存储库…...

嵌入式---烧录器

一、核心定义与本质功能 烧录器&#xff08;Programmer&#xff09;是一种将用户编写的程序代码&#xff08;如.hex/.bin文件&#xff09;写入单片机内部存储器&#xff08;Flash/EEPROM/ROM&#xff09;的专用工具&#xff0c;核心功能包括&#xff1a; 程序烧写&#xff1a…...

centos-LLM-生物信息-BioGPT-使用1

参考&#xff1a; GitHub - microsoft/BioGPT https://github.com/microsoft/BioGPT BioGPT&#xff1a;用于生物医学文本生成和挖掘的生成式预训练转换器 |生物信息学简报 |牛津学术 — BioGPT: generative pre-trained transformer for biomedical text generation and mini…...

Golang|协程

文章目录 go func 和 WaitGroup协程 v.s. 线程GMP 并发模型 go func 和 WaitGroup 在 Go 语言中&#xff0c;协程&#xff08;goroutine&#xff09;之间并没有严格的父子关系。一个协程中可以启动其他协程&#xff0c;即使启动它的协程已经结束&#xff0c;所启动的新协程仍会…...

免费下载地图切片数据以及通过CesiumEarth在Windows和安卓本地浏览

免费下载地图切片数据 本文概述​ 互联网存在许多免费的地图资源&#xff0c;但是这些资源都需要在互联网环境下使用&#xff0c;如果使用场景是在离线或本地设备上&#xff0c;没有在线调用地图的途径&#xff0c;这时如果没有自己制作地图的能力&#xff0c;只能提前下载地…...

Enovia许可使用限制

在数字化时代&#xff0c;企业的研发与创新活动越来越依赖于先进的软件工具。Enovia&#xff0c;作为一款功能强大的产品生命周期管理&#xff08;PLM&#xff09;解决方案&#xff0c;为众多行业的企业提供了从概念到生产的全方位支持。然而&#xff0c;为了确保软件的合规性与…...

“米其林.网址”中文域名仲裁案:知名企业如何保护网络知产权益?

中文域名与商标协同保护经典案例解析 近期&#xff0c;国际知名的轮胎制造商米其林公司&#xff08;Compagnie Gnrale des tablissements Michelin&#xff09;通过仲裁程序成功夺回了被抢注的中文域名<米其林.网址>。这一案件再次引发了公众对企业网络知识产权保护和域名…...

TCP专题

一、TCP连接建立 1、TCP的四元组 TCP属于面向连接——在发送数据之前&#xff0c;需要先建立一条点到点的连接。 TCP的四元组&#xff1a;源IP地址、目标IP地址、源端口、目标端口。可以唯一的区分和标识一条TCP的连接。 2、TCP报文结构 序列号&#xff1a;TCP是基于”字节…...

力扣热题100刷题day63|49.字母异位词分组

一、哈希表相关理论 代码随想录刷题day15|&#xff08;哈希表篇&#xff09;242.有效的字母异位词、383.赎金信-CSDN博客 二、思路 首先&#xff0c;创建一个map集合&#xff0c;遍历字符串数组&#xff0c;对数组中每一个字符串&#xff08;单词&#xff09;比如"abc&…...

BERT - 今日头条新闻分类任务实战

1. 自定义模型组件 MultiHeadAttention 类 实现了多头自注意力机制。 通过将输入分割成多个“头”&#xff0c;从不同角度学习输入数据的特征。 注意力分数计算后应用了缩放点积注意力&#xff0c;并支持掩码操作。 class MultiHeadAttention(nn.Module):def __init__(se…...

leetcode-419.棋盘上的战舰

leetcode-419.棋盘上的战舰 文章目录 leetcode-419.棋盘上的战舰一.题目描述二.第一次代码提交三.第二次代码提交 一.题目描述 二.第一次代码提交 class Solution { public:int countBattleships(vector<vector<char>>& board) {int m board.size(); //列数i…...

Python爬虫第11节-解析库Beautiful Soup的使用上篇

目录 前言 一、Beautiful Soup 简介 1.1 Beautiful Soup概述 1.2 准备工作 1.3 解析器 二、基本使用 三、节点选择器的使用 3.1 选择元素 3.2 提取信息 3.2.1 获取名称 3.2.2 获取属性 3.2.3 获取内容 3.3 嵌套选择 3.4 关联选择 3.4.1 子节点和子孙节点 3.4.2…...

host模式容器compose建立记录

需要一个host模式的容器&#xff0c;用来跑gpu程序。同时最好使用ssh来直接远程连接。 以前是直接建立容器然后手动安装ssh的。但是最近突然又不行了&#xff0c;不知道为什么。我知道原因是容器的systmctl不能使用。但是为什么以前能用呢&#xff1f; 一、安装结构 总之换成…...

LeetCode算法题(Go语言实现)_39

题目 给定一个二叉树的根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 一、代码实现 type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode }func rightSideView(root *TreeNode) []int {i…...

算法训练之动态规划(五)——简单多状态问题

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...

深度学习-156-RAG技术之在ubuntu中的安装部署RAGFlow和简单应用

文章目录 1 ubuntu中安装RAGFlow1.1 RAGFlow简介1.2 安装部署1.2.1 硬件要求1.2.2 修改max_map_count1.2.3 下载仓库代码1.2.4 自动拉取镜像1.2.5 查看端口占用(如果提示的话)1.2.6 启动与关闭RAGFlow2 访问应用2.1 添加模型2.2 创建知识库2.2.1 输入名称点击确定2.2.2 填写相关…...

自学Matlab-Simscape(初级)- 2.1 Simscape Multibody 模块之关节(运动副)

Matlab-Simscape自学系列文章目录 1.了解Simscape Multibody Link模块 2.掌握Simscape Multibody 模块 3.掌握Simscape Electrical模块 4.掌握Simscape Driveline 模块 5.了解Simscape Fluids模块 6.了解Simscape Battery模块 7.掌握Simscape Mechanical Interfaces 模块 8.掌…...

再次重拾jmeter之踩坑

1.添加“csv数据文件设置”&#xff0c;运行时提示 java.lang.IllegalArgumentException: Filename must not be null or empty检查多次后才发现因为我运行的是整个线程组&#xff0c;所以对应http请求下不能包括空的csv文件 2. 填写ip时不能加/&#xff0c;要在路径里加&…...

第六周作业

好的&#xff0c;这是移除外层代码块&#xff0c;并保留内部 Markdown 格式的作业内容&#xff1a; SQL 注入作业 1、联合注入实现“库名-表名-字段名-数据”的注入过程 &#xff08;1&#xff09;前端注入 尝试使用 database() 这个函数进行库名爆破 1 union select 1,data…...

学科发展视域下教师数字素养提升的多维路径研究

学科发展视域下教师数字素养提升的多维路径研究 —— 基于技术融合与教学创新的双重逻辑 一、引言&#xff1a;数字时代的学科教育转型 1.1 研究背景与意义 在当今时代&#xff0c;人工智能与教育数字化战略正以迅猛之势重塑着教育的格局&#xff0c;成为推动学科教学范式深…...

QEMU学习之路(6)— RISC-V 启动Linux

QEMU学习之路&#xff08;6&#xff09;— RISC-V 启动Linux 一、前言 参考&#xff1a;QEMU 启动方式分析&#xff08;1&#xff09;&#xff1a;QEMU 及 RISC-V 启动流程简介 QEMU 启动方式分析&#xff08;2&#xff09;: QEMU virt 平台下通过 OpenSBI U-Boot 引导 RISC…...