【技术追踪】通过潜在扩散和先验知识增强时空疾病进展模型(MICCAI-2024)
向扩散模型中引入先验知识,实现疾病进展预测,扩散模型开始细节作业了~
论文:Enhancing Spatiotemporal Disease Progression Models via Latent Diffusion and Prior Knowledge
代码:https://github.com/LemuelPuglisi/BrLP
0、摘要
本文介绍了基于潜在扩散的新型时空疾病进展模型—— Brain Latent Progression(BrLP)。BrLP 旨在预测个体在三维脑 MRI 上的疾病进展。(由当前图像获得疾病进展后的图像)。
为完成这一任务而开发的现有深度生成模型主要以数据驱动为主,面临学习疾病进展的挑战。BrLP 通过结合疾病模型的先验知识来增强预测的准确性,解决了这些挑战。
为了实现这一点,本文建议整合一个辅助模型来推断不同脑区的体积变化。此外,本文引入了潜在平均稳定化(Latent Average Stabilization,LAS),一种新的技术来提高预测进展的时空一致性。
BrLP 在一个大规模数据集上进行训练和评估,该数据集包含来自 2805 名受试者的 11730 张 T1 加权脑部 MRI 图像,这些图像采集自三个公开的纵向阿尔茨海默病(AD)研究。
实验中,在横断面和纵向设置中,将 BrLP 生成的 MRI 扫描与受试者实际可用的随访 MRI 进行比较。BrLP 在体积准确性和图像相似性方面均显著优于现有方法,其中在与阿尔茨海默病(AD)相关的脑区体积准确性提高了 22%,与真实扫描的图像相似性提高了 43%。
BrLP 能够在受试者水平生成条件化的三维扫描,并且通过整合先验知识来提高准确性,这在疾病进展建模方面代表了一个重大进步,并为精准医疗开辟了新的途径。
1、引言
1.1、研究意义与当前挑战
(1)相比于生物标志物的表征,利用丰富的、高维的影像表示疾病进展,便于可视化和精确定位复杂结构变化的模式,从而提供对疾病动态更详细的了解;
(2)挑战 1: 通过基于受试者特定的元数据进行条件化,以提高个体化程度;
(3)挑战 2: 在有条件的情况下使用纵向扫描;
(4)挑战 3: 增强时空一致性,以实现空间和时间维度上的平滑进展;
(5)挑战 4: 管理由于使用高分辨率三维医学图像而导致的高内存需求;
1.2、本文贡献
(1)解决挑战 1: 提出将 LDM 和 ControlNet 结合起来,根据可用的受试者数据生成个体化的脑部 MRI;
(2)解决挑战 2: 提出通过使用一个辅助模型来整合疾病进展的先验知识,该模型旨在推断不同脑区的体积变化,从而在有条件的情况下使用纵向数据;
(3)解决挑战 3: 提出了 LAS,这是一种用于改善预测进展的时空一致性的技术;
(4)解决挑战 4: 使用脑部 MRI 的潜在表示,以减少处理三维扫描的内存需求;
本文通过训练 BrLP 来学习不同认知状态个体脑部的渐进性结构变化,从而评估其性能:认知正常(Cognitively Normal, CN)、轻度认知障碍(Mild Cognitive Impairment, MCI)以及阿尔茨海默病(Alzheimer’s Disease)。
为此,本文使用了一个大规模数据集,包含来自 2805 名受试者的 11730 张 T1 加权脑部 MRI 图像,这些图像来自三个公开的阿尔茨海默病纵向研究。据本文作者所知,本文是首次提出一种用于脑部 MRI 的三维条件生成模型,该模型将疾病进展的先验知识整合到图像生成过程中。
挑战与贡献对应的写法很棒的感觉~
2、方法
2.1、Background - Diffusion Models
原文略,可参考:【Diffusion综述】医学图像分析中的扩散模型(一)中 2.2 节;
2.2、Proposed Pipeline - Brain Latent Progression (BrLP)
BrLP 架构由四个关键组件构成:一个 LDM(潜在扩散模型)、一个 ControlNet(控制网络)、一个辅助模型以及一个 LAS(时空一致性增强)模块。这四个组件共同解决了引言部分提到的挑战,其架构总体如 图1 所示。具体来说:
(1)LDM 旨在生成符合特定协变量的随机三维脑部 MRI 图像;
(2)ControlNet 则专注于将这些 MRI 图像细化到特定受试者的解剖结构;
(3)辅助模型利用疾病进展的先验知识,以提高对特定脑区体积变化预测的精确性;
(4)LAS 模块在推理过程中被用于增强时空一致性;
Figure 1 | BrLP训练和推理过程概述:
2.2.1、LDM:学习脑 MRI 分布
在文献 [12] 的基础上,本文训练了一个潜在扩散模型(LDM),其目标是生成反映特定协变量 c = ⟨ s , v ⟩ c=⟨s,v⟩ c=⟨s,v⟩ 的三维脑部 MRI 图像。其中, s s s 包括受试者特定的元数据(如年龄、性别和认知状态),而 v v v 则涵盖了与阿尔茨海默病(AD)进展相关的指标,例如与 AD 进展相关的脑区(海马体、大脑皮层、杏仁核、大脑白质和侧脑室)的体积。
LDM 的构建是一个两阶段的过程。首先,训练一个自编码器 ( E , D ) (\mathcal E, \mathcal D) (E,D)(图1中的A部分),该自编码器旨在为数据集中的每个脑部 MRI x x x 生成一个潜在表示 z = E ( x ) z = \mathcal E(x) z=E(x)。随后训练一个条件 UNet(图1中的B部分),表示为 ϵ θ ϵ_θ ϵθ,网络参数为 θ θ θ,旨在估计从 z t z_t zt 恢复到 z t − 1 z_{t-1} zt−1 所需的噪声 ϵ θ ( z t , t , c ) ϵ_θ(z_t,t,c) ϵθ(zt,t,c),通过最小化损失函数 L ϵ \mathcal L_ϵ Lϵ 来训练 ϵ θ ϵ_θ ϵθ。协变量 c c c 作为条件通过交叉注意力机制集成到网络中。
生成过程首先从采样随机高斯噪声 z T ∼ N ( 0 , I ) z_T∼\mathcal N(0,I) zT∼N(0,I) 开始,然后迭代地逆向执行每个扩散步骤 z t → z t − 1 z_t→z_{t−1} zt→zt−1,其中 t = T , … , 1 t=T,…,1 t=T,…,1。对最终步骤 t = 1 t=1 t=1 的输出 z 0 z_0 z0 进行解码,可以得到一个符合指定协变量 c c c 的合成脑部 MRI 图像 x ^ = D ( z 0 ) \hat x=\mathcal D(z_0) x^=D(z0)。
2.2.2、ControlNet:基于受试者脑部 MRI 的条件
LDM 仅通过协变量 c c c 对生成的脑部 MRI 提供有限程度的控制,并且不允许根据单个解剖结构对模型进行调节。这个模块的目的是扩展 LDM 的能力,使其能够包含这种额外的控制功能。为了实现这一点,本文使用了 ControlNet(图1中的C部分),这是一个设计为与 LDM 协同工作的神经网络。
将 ControlNet 和 LDM 概念化为一个统一的网络 ϵ θ , ϕ ϵ_{θ,ϕ} ϵθ,ϕ,其中 θ θ θ 表示 LDM 的固定网络参数, ϕ ϕ ϕ 表示 ControlNet 的可训练网络参数。与 LDM 一样, ϵ θ , ϕ ϵ_{θ,ϕ} ϵθ,ϕ 仍用于预测反向扩散步骤 z t → z t − 1 z_t→z_{t−1} zt→zt−1 中的噪声 ϵ θ , ϕ ( z t , t , c , z ) ϵ_{θ,ϕ}(z_t,t,c,z) ϵθ,ϕ(zt,t,c,z),现在将 z = E ( x ) z = \mathcal E(x) z=E(x) 也作为条件,以涵盖生成过程中目标脑 x x x 的结构。
为了训练 ControlNet,本文使用来自同一患者在不同年龄 A < B A < B A<B 时拍摄的脑部 MRI 对的潜在表示 z ( A ) z^{(A)} z(A) 和 z ( B ) z^{(B)} z(B)。与 z ( B ) z^{(B)} z(B) 相关的协变量 c ( B ) c^{(B)} c(B) 已知并用作目标协变量。每次训练迭代包括:
(1)采样 t ∼ U [ 1 , T ] t∼U[1,T] t∼U[1,T]
(2)执行 t t t 步前向扩散 z ( B ) → z t ( B ) z^{(B)}→z^{(B)}_t z(B)→zt(B)
(3)预测噪声 ϵ θ , ϕ ( z t ( B ) , t , c ( B ) , z ( A ) ) ϵ_{θ,ϕ}(z^{(B)}_t,t,c^{(B)},z^{(A)}) ϵθ,ϕ(zt(B),t,c(B),z(A)) 以恢复 z t ( B ) → z t − 1 ( B ) z^{(B)}_t→z^{(B)}_{t-1} zt(B)→zt−1(B)
(4) 最小化损失 L ϵ \mathcal L_ϵ Lϵ
2.2.3、提出的辅助模型 - 利用疾病先验知识
AD 相关区域随时间而缩小或扩大,且速率不同。基于深度学习的时空模型试图以黑盒方式直接从脑部 MRI 中学习这些进展速率,这可能非常具有挑战性。为了帮助这一过程,本文提出将有关体积变化的先验知识直接整合到流程中。
为此,本文利用辅助模型 f ψ f_ψ fψ(图1中的D部分),能够预测与 AD 相关的区域体积随时间的变化,并通过进展相关的协变量 v v v 将这些信息提供给 LDM。辅助模型的选择针对两种情况,使 BrLP 在横断面和纵向数据中都具有灵活性。
对于在年龄 A A A 时有单次扫描的受试者,本文采用回归模型来估计年龄 B B B 时的体积变化 v ^ ( B ) = f ψ ( c ( A ) ) \hat v^{(B)} = f_ψ(c^{(A)}) v^(B)=fψ(c(A))。对于可以访问在年龄 A 1 , . . . , A n A_1, ..., A_n A1,...,An 时的 n n n 次过去访问的受试者,使用疾病进程映射 (DCM) 来预测 v ^ ( B ) = f ψ ( c ( A 1 ) , . . . , c ( A n ) ) \hat v^{(B)} = f_ψ(c^{(A_1)}, ... ,c^{(A_n)}) v^(B)=fψ(c(A1),...,c(An)),该模型专门用于疾病进展。DCM 旨在根据受试者可用的体积变化历史提供更准确的轨迹。虽然使用 DCM 作为潜在的解决方案,但任何合适的疾病进展模型都可用于 BrLP。
2.2.4、推理过程
将 x ( A ) x^{(A)} x(A) 定义为年龄为 A A A 的受试者的输入脑部 MRI,已知受试者特定元数据 s ( A ) s^{(A)} s(A) 和从 x ( A ) x^{(A)} x(A) 测量的进展相关体积 v ( A ) v^{(A)} v(A)。如图1中的E部分总结,为了推断年龄 B > A B > A B>A 时的脑部 MRI x ( B ) x^{(B)} x(B),执行 6 个步骤:
(1)使用辅助模型预测进展相关体积 v ^ ( B ) = f ψ ( c ( A ) ) \hat v^{(B)} = f_ψ(c^{(A)}) v^(B)=fψ(c(A));
(2)将此信息与受试者特定的元数据 s ( B ) s^{(B)} s(B) 连接,形成目标协变量 c ( B ) = ⟨ s ( B ) , v ^ ( B ) ⟩ c^{(B)} =⟨s^{(B)},\hat v^{(B)}⟩ c(B)=⟨s(B),v^(B)⟩;
(3)计算潜在表示 z ( A ) = E ( x ( A ) ) z^{(A)} = \mathcal E(x^{(A)}) z(A)=E(x(A));
(4)对随机高斯噪声 z T ∼ N ( 0 , I ) z_T∼\mathcal N(0,I) zT∼N(0,I) 进行采样;
(5)通过预测噪声 ϵ θ , ϕ ( z t , t , c ( B ) , z ( A ) ) ϵ_{θ,ϕ}(z_t,t,c^{(B)},z^{(A)}) ϵθ,ϕ(zt,t,c(B),z(A)) 来运行反向扩散过程,以反转每个扩散步骤 t = T , … , 1 t=T,…,1 t=T,…,1;
(6)使用解码器 D \mathcal D D 在图像域中重建预测的脑 MRI x ( B ) = D ( z 0 ) x^{(B)} = \mathcal D(z_0) x(B)=D(z0);
这个推理过程被总结为一个紧凑的符号 z ^ ( B ) = I ( z T , x ( A ) , c ( A ) ) \hat z^{(B)} = \mathcal I(z_T, x^{(A)},c^{(A)}) z^(B)=I(zT,x(A),c(A)) 和 x ^ ( B ) = D ( z ^ ( B ) ) \hat x^{(B)} = \mathcal D(\hat z^{(B)}) x^(B)=D(z^(B))。
2.2.5、通过提出的潜在平均稳定化(LAS)增强推理
初始值 x T ∼ N ( 0 , I ) x_T∼\mathcal N(0,I) xT∼N(0,I) 的变化可能导致推理过程产生的结果出现轻微差异。当对连续时间步进行预测时,这些差异尤为明显,表现为不规则的模式或进程的非平滑过渡。因此,本文引入了 LAS(图1中的F部分),这是一种通过平均推理过程的不同结果来提高时空一致性的技术。
特别地,LAS 基于这样的假设:预测值 z ^ ( B ) = I ( z T , x ( A ) , c ( A ) ) \hat z^{(B)} = \mathcal I(z_T, x^{(A)},c^{(A)}) z^(B)=I(zT,x(A),c(A)) 偏离理论平均值 μ ( B ) = E [ z ^ ( B ) ] \mu ^{(B)} = \mathbb E[\hat z^{(B)}] μ(B)=E[z^(B)]。为了估计期望值 μ ( B ) \mu ^{(B)} μ(B),本文建议重复推理过程 m m m 次,并对结果进行平均:
与之前类似,本文对预测的扫描进行解码 x ^ ( B ) = D ( μ ( B ) ) \hat x^{(B)} = \mathcal D(\mu ^{(B)}) x^(B)=D(μ(B))。整个推理过程(其中 m = 4 m = 4 m=4)在消费级 GPU 上每 MRI 需要 4.8 秒。
3、实验与结果
3.1、数据
收集了一个大型数据集,包含来自 2,805 名受试者的 11,730 张 T1 加权脑部 MR I扫描图像,这些数据来自多个公开的纵向研究:ADNI 1/2/3/GO (1,990名受试者)、OASIS-3 (573名受试者)和 AIBL (242名受试者)。每位受试者至少有两张 MRI 图像,且每次扫描均在不同的访问中获取。
所有数据集中均可以获得年龄、性别和认知状态。平均年龄为 74±7 岁,53% 的受试者为男性。根据最终访视结果,43.8% 的受试者被归类为正常对照组,25.7% 表现出或发展为轻度认知障碍,30.5% 表现出或发展为阿尔茨海默病。
将数据随机分为训练集(80%)、验证集(5%)和测试集(15%),且各组之间没有重叠的受试者。验证集用于训练过程中的提前停止。每张脑部 MRI 图像均经过预处理,包括:N4 偏场校正、颅骨剥离、到 MNI 空间的仿射配准、强度归一化以及重采样至 1.5mm³。用于评估进展的相关协变量体积是使用 SynthSeg 2.0 计算得出,并以总脑体积的百分比表示,以考虑个体差异。
3.2、评价指标
均方误差(MSE)和结构相似性指数(SSIM)用于评估扫描之间的图像相似性;
与 AD 相关的区域(海马体、杏仁核、侧脑室、脑脊液和丘脑)的体积指标评估模型在追踪疾病进展方面的准确性;
3.3、消融实验与对比实验
Table 1 | 消融研究结果以及与基线方法的比较:预测体积中的 MAE(± SD)表示为总脑体积的百分比;
3.4、示例展示
Figure 2 | 将 70 岁 MCI 受试者 15 年的真实进展与 BrLP 和基线方法的预测进行比较:每种方法显示预测的 MRI(左)及其与受试者真实脑 MRI 的偏差(右);
疾病进展还是太细节的变化了,怎样提升扩散模型的细节处理呢(我又被拒稿了,难过/(ㄒoㄒ)/~~)
相关文章:
【技术追踪】通过潜在扩散和先验知识增强时空疾病进展模型(MICCAI-2024)
向扩散模型中引入先验知识,实现疾病进展预测,扩散模型开始细节作业了~ 论文:Enhancing Spatiotemporal Disease Progression Models via Latent Diffusion and Prior Knowledge 代码:https://github.com/LemuelPuglisi/BrLP 0、摘…...
Linux/AndroidOS中进程间的通信线程间的同步 - 内存映射
前言 如何使用 mmap()系统调用来创建内存映射。内存映射可用于 IPC 以及其他很多方面。 1 概述 mmap()系统调用在调用进程的虚拟地址空间中创建一个新内存映射。映射分为两种。 文件映射:文件映射将一个文件的一部分直接映射到调用进程的虚拟内存中。一旦一个文…...
单例模式的实现方法
单例模式(Singleton Pattern)是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要控制对资源(如配置对象、线程池、缓存等)的访问时特别有用。 一、单例模…...
laravel 12 监听syslog消息,并将消息格式化后存入mongodb
在Laravel 12中实现监听Syslog消息并格式化存储到MongoDB,需结合日志通道配置、Syslog解析和MongoDB存储操作。以下是具体实现方案: 一、环境配置 安装MongoDB扩展包 执行以下命令安装必要的依赖: composer require jenssegers/mongodb ^4.0确…...
如何在使用 docker-compose 命令时指定 COMPOSE_PROJECT_NAME ?
1.默认值 COMPOSE_PROJECT_NAME 环境变量的默认值并非 docker。在没有显式设置 COMPOSE_PROJECT_NAME 时,其默认值是运行 docker-compose 命令所在目录的基础名称(也就是当前工作目录去掉路径后的文件夹名称)。 以下为你详细说明࿱…...
在命令行终端中快速打开npm包官网
命令 npm home 命令用于快速打开指定 npm 包的官网。例如,npm home react 会尝试打开 React 库的官方网站。 npm home PACKAGE_NAME 该命令会首先查找指定包的 package.json 文件中的 homepage 字段,如果存在,则打开该字段指定的网址。 {&…...
鸿蒙NEXT开发动画(风格的弹性缩放加载动画组件)
1.创建空白项目 2.Page文件夹下面新建Spin.ets文件,代码如下: // 接口定义(必须放在使用前) /*** 关键帧动画整体配置参数*/ interface KeyframeAnimationConfig {iterations: number;delay: number; }/*** 单个关键帧动画项*/…...
【MongoDB篇】MongoDB的事务操作!
目录 引言第一节:什么是事务? (ACID 原则)第二节:MongoDB 的演进:多文档 ACID 事务的到来!🎉第三节:事务的“玩法”——如何执行一个事务?💻🤝第四节…...
Android第六次面试总结之Java设计模式篇(一)
一、单例模式在 Android 面试中的核心考点 1. Android 中如何安全实现单例?需注意哪些坑?(字节跳动、美团面试真题) 解答: Android 中实现单例需重点关注 Context 泄漏、线程安全 和 反射 / 序列化攻击。 推荐实现&…...
关于论文中插入公式但是公式相对于段落的位置偏上应该如何调整备份
因为mythtype之前插入到word里面出现了一些问题就给删掉了,本来要是word里面内联mythtype的话直接,点击mythtype的格式化就可以了, 也就是这个佬的视频介绍链接 然后现在试了试普通word里面的方法,这个是比较有用的 然后看这个例…...
[java八股文][Java并发编程面试篇]并发安全
juc包下你常用的类? 线程池相关: ThreadPoolExecutor:最核心的线程池类,用于创建和管理线程池。通过它可以灵活地配置线程池的参数,如核心线程数、最大线程数、任务队列等,以满足不同的并发处理需求。Exe…...
【东枫科技】代理英伟达产品:智能网卡
文章目录 对比详细:NVIDIA ConnectX-7 适配器详细:NVIDIA ConnectX-6 Lx 以太网智能网卡详细:NVIDIA ConnectX-6 Dx 以太网智能网卡详细:NVIDIA ConnectX-6 InfiniBand 适配器 对比 详细:NVIDIA ConnectX-7 适配器 为最…...
eNSP中路由器OSPF协议配置完整实验和命令解释
本实验使用三台华为路由器(R1、R2和R3)相连,配置OSPF协议实现网络互通。拓扑结构如下: 实验IP规划 R1: GE0/0/0: 192.168.12.1/24 (Area 0)Loopback0: 1.1.1.1/32 (Area 0) R2: GE0/0/0: 192.168.12.2/24 (Area 0)GE0/0/1: 192.…...
解锁健康生活:全新养身指南
健康养身不是遥不可及的目标,而是由一个个小习惯编织成的生活方式。当我们将这些健康理念融入日常,就能为身体注入源源不断的活力。 从 “吃” 开始守护健康。尝试制作 “营养碗”,底层铺满羽衣甘蓝、生菜等绿叶蔬菜,中间搭配水…...
win11 怎样把D盘空间分给C盘一点
如下所示,我的C盘甚至已经爆红了,打算D盘清理一些空间给C盘。 首先附上链接,这是我在b站看的教程,虽然跟着视频没成功,但是结合评论区大神们的建议,尝试了好几种方法,最终自己摸索成功了。 【怎…...
Apache Doris与StarRocks对比
## 历史背景 Apache Doris源自百度的Palo项目,于2017年开源,2018年贡献给Apache基金会,并于2022年从Apache孵化器毕业成为顶级项目。StarRocks则是由原Apache Doris团队的一部分成员在2020年分支出来成立的独立项目,最初称为DorisDB,后更名为StarRocks。这两个项目虽然有…...
OSCP - Proving Grounds - NoName
主要知识点 linux命令注入SUID find提权 具体步骤 从nmap开始搜集信息,只开放了一个80端口 Nmap scan report for 192.168.171.15 Host is up (0.40s latency). Not shown: 65534 closed tcp ports (reset) PORT STATE SERVICE VERSION 80/tcp open http …...
2025年OpenAI重大架构调整:资本与使命的再平衡
目录 前言 一、调整核心:三重架构的重构 1.1 控制权的重新锚定 1.2 营利部门的角色转型 1.3 资金池的重新配置 二、调整动因:三重矛盾的破解 2.1 资金需求与融资限制的冲突 2.2 商业竞争与使命纯度的博弈 2.3 内部治理与外部监管的张力 三、产…...
【quantity】0 README.md文件
PhysUnits 物理单位库 Type-safe physical quantities with dimensional analysis 带量纲分析的类型安全物理量库 A Rust library for safe unit operations / Rust实现的类型安全单位计算库 Core Design / 核心设计 1. Dimension / 量纲 /// Base SI dimensions / 国际单…...
[python] str
一、移除字符串中所有非字母数字字符 使用正则表达式 import re string_value "alphanumeric123__" cleaned_string re.sub(r[\W_], , string_value) # 或 r[^a-zA-Z0-9] print(cleaned_string) # 输出: alphanumeric123使用**str.isalnum()**方法 string_v…...
iOS与HTTPS抓包调试小结
最近在做一个多端 SDK 网络请求兼容性的测试,期间遇到一些 HTTPS 请求抓不到、iOS 抓包失效等问题,趁机整理一下我平时抓包时用到的几个工具和技巧,也顺便记录一下对比体验。 一、传统工具的局限 最早用的是 Charles 和 Fiddler,…...
AI基础知识(02):机器学习的任务类型、学习方式、工作流程
03 机器学习(Machine Learning)的任务类型与学习方式 广义的机器学习主要是一个研究如何让计算机通过数据学习规律,并利用这些规律进行预测和决策的过程。这里的Machine并非物理意义上的机器,可以理解为计算机软硬件组织;Learning可以理解为一个系统或平台经历了某些过程…...
2025年大风灾害预警升级!疾风气象大模型如何筑起安全防线?
近年来,全球极端天气事件频发,大风灾害正成为威胁城市安全、交通运输和公共设施的重要隐患。据气象部门预测,2025年我国大风天气将更加频繁,局部地区可能出现超强阵风,对高空作业、电力设施、交通运输等领域构成严峻挑战。面对这一趋势,传统的气象预警方式已难以满足精准…...
Docker手动重构Nginx镜像,融入Lua、Redis功能
核心内容:Docker重构Nginx镜像,融入Lua、Redis功能 文章目录 前言一、准备工作1、说明2、下载模块3、Nginx配置文件3、Dockerfile配置文件3、准备工作全部结束 二、构建镜像三、基于镜像创建容器三、lua脚本的redis功能使用总结 前言 …...
Spring Boot Starter简介-笔记
1. Starter简介 Spring Boot Starter 是 Spring Boot 框架的核心组件之一,它通过预定义的依赖集合和自动化配置机制,极大简化了 Spring 应用的开发和部署。 Spring Boot Starter 的核心功能 自动化配置(Auto-Configuration) Spr…...
关系型数据库与非关系型数据库深度对比:从设计哲学到应用场景的全解析
关系型数据库与非关系型数据库深度对比:从设计哲学到应用场景的全解析 引言 在数字化浪潮中,数据库技术始终扮演着基础核心角色。本文将通过技术架构、应用场景等维度,深入剖析关系型数据库(RDBMS)与非关系型数据库(NoSQL)的本质差异。我们将以MySQL、MongoDB、Redis等…...
论文速读:《CoM:从多模态人类视频中学习机器人操作,助力视觉语言模型推理与执行》
论文链接:https://arxiv.org/pdf/2504.13351 项目链接:https://chain-of-modality.github.io/ 0. 简介 现代机器人教学的一个重要方向是让机器人通过观看人类的视频演示,自动学习并执行复杂的物理操作任务,比如拧瓶盖、插插头、打…...
系统思考:选择大于努力
在今年的伯克希尔哈撒韦股东大会上,94岁高龄的股神巴菲特再次以他的智慧和幽默,给年轻人留下了三句关于人生的黄金建议。让我印象最深刻的是:“选择和谁一起走,比怎么走更重要。” 这一句话让我反思了许多——人生的轨迹不单单是…...
【HTML5】显示-隐藏法 实现网页轮播图效果
【HTML5】显示-隐藏法 实现网页轮播图效果 实现思路:先将所有图片在页面中设置好,然后给放置图片的元素li添加display:none属性将其隐藏,然后通过js获取到放置图片的元素li,再一个一个的给li元素添加displayÿ…...
Jenkins 改完端口号启动不起来了
让我们将 Jenkins 恢复到默认的 8080 端口,确保它能正常启动: 1. 修改 Jenkins 的配置文件: sudo nano /etc/default/jenkins 将内容修改为: HTTP_PORT8080 JENKINS_ARGS"--webroot/var/cache/jenkins/war --httpPort8080…...
招标专家随机抽选——设计讲解—未来之窗智能编程——仙盟创梦IDE
招标专家系统 专家评标系统是服务于各类招标评标活动的数字化平台。它依托先进信息技术,集专家库管理、随机抽取专家、在线评标等功能于一体。系统依据项目需求设定筛选条件,从庞大专家库中精准抽取合适专家。评标时,专家可在线查阅投标文件…...
Os 库报错指南 路径处理常见陷阱
平台分隔符差异 Windows用\,Unix用/ → 使用os.path.join()自动处理 路径解析错误 os.path.abspath()解析相对路径时依赖当前工作目录 路径规范化缺失 ../等符号链接需用os.path.normpath()规范化 # 不推荐 path dir\\file.txt # Windows风格 path dir/file.…...
GD32/STM32 ADC/DMA使用指南
首先我们对ADC及DMA的基础知识作一下简单介绍。 一、 GD32/STM32 ADC模块的核心要点 一)、ADC基础特性 12位逐次逼近型 GD32/STM32 ADC为12位分辨率,最大量化值为4095(对应3.3V参考电压),支持0-3.3V模拟输入范…...
CSS Border 三角形阴影与多重边框的制作
CSS Border 三角形阴影与多重边框的制作 在现代网页设计中,CSS的强大功能让设计师和开发者能够创造出丰富多彩的视觉效果。本文将深入探讨如何利用CSS的border属性制作三角形阴影以及多重边框效果。这些技巧不仅能提升页面的美观度,还能增强用户体验。…...
ES6/ES11知识点 续五
迭代器【Iterator】 ES6 中的**迭代器(Iterator)**是 JavaScript 的一种协议,它定义了对象如何被逐个访问。迭代器与 for…of、扩展运算符、解构赋值等语法密切相关。 📘 迭代器工作原理 ES6 迭代器的工作原理基于两个核心机制…...
如何选择 边缘计算服务器
边缘计算服务器选型指南(2025年更新版) 一、明确应用场景需求 场景细分 工业控制、自动驾驶等需毫秒级响应的场景,优先选择集成多核处理器(如Xeon D系列)和实时算法加速模块的机型,确保延迟≤50ms&…...
VMware如何安装?Ubuntu详细步骤
VMware如何安装?Ubuntu详细步骤如下: 在VMware中安装Ubuntu是一个常见的操作,适用于开发、测试或学习Linux的场景。以下是详细的实战步骤和注意事项,帮助你顺利完成安装。 准备工作 软件下载: VMware Workstation/Play…...
【Bootstrap V4系列】学习入门教程之 组件-卡片(Card)高级用法
【Bootstrap V4系列】学习入门教程之 组件-卡片(Card)高级用法 一、Sizing 尺寸1.1 Using grid markup 使用网格标记1.2 Using utilities 使用实用程序1.3 Using custom CSS 使用自定义CSS 二、Text alignment 文本对齐方式三、Navigation 导航 一、Sizi…...
WiFi那些事儿(八)——802.11n
目录 802.11n 技术简介与测试项 一、802.11n 技术简介 (一)标准概述 (二)关键技术特性 1. MIMO(多输入多输出)技术 2. 信道绑定(Channel Bonding) 3. 帧聚合(Fram…...
Transformer数学推导——Q56 推导动态残差门控(Dynamic Residual Gating)的权重更新公式
该问题归类到Transformer架构问题集——残差与归一化——残差连接。请参考LLM数学推导——Transformer架构问题集。 1. 引言 在深度学习的演进历程中,网络结构的创新始终围绕着如何更高效地处理信息、提升模型性能展开。动态残差门控(Dynamic Residual…...
Kaggle——House Prices(房屋价格预测)简单实现
题目: 从Kaggle的“House Prices - Advanced Regression Techniques”数据集使用Pandas读取数据,并查看数据的基本信息。选择一些你认为对房屋价格有重要影响的特征,并进行数据预处理(如缺失值处理、异常值处理等)。…...
Vue项目Git提交流程集成
Vue项目Git提交流程集成 本教程将指导你如何在Vue项目中集成一个规范化的Git提交流程,包括代码规范检查、提交信息规范和自动化工具配置。 前置条件 Node.js 14.0 和 npm/yarn/pnpmVue项目(Vue 2或Vue 3均可)Git已初始化的仓库 一、规范化…...
使用 OpenSSL 吊销 Kubernetes(k8s)的 kubeconfig 里的用户证书
一.用 OpenSSL 依据已有的自签名 CA 注销签发的证书的步骤 1. 准备工作 你得有自签名 CA 的私钥(通常是 .key 文件)、CA 证书(通常是 .crt 文件)以及证书吊销列表(CRL)文件。若还没有 CRL 文件,…...
kubeadm部署k8s
我在阿里云上部署的k8s master 4c/8g/40g rocky linux8.9 node1/node2 2c/4g/40g rocky linux8.9 安装docker (我安装的是v1.19.1版本,是旧版本,可以装新版本,docker的版本和kubeadm,kubectl,kubelet版本相同) 1.所有…...
FPGA实战项目1——坦克大战
FPGA实战项目1——坦克大战 根据模块化思想,可将此任务简单的进行模块拆分: 系统原理,模块划分,硬件架构,算法支持,Verilog实现框架 一,系统总体原理 1. 核心设计思想 硬件并行处理&#x…...
LeetCode 1781. 所有子字符串美丽值之和 题解
示例 输入:s "aabcb" 输出:5 解释:美丽值不为零的字符串包括 ["aab","aabc","aabcb","abcb","bcb"] ,每一个字符串的美丽值都为 1这题光用文字解说还是无法达到讲…...
Spring Web MVC————入门(1)
今天开始正式带大家学习Spring部分的内容了,大家尝试去弄个专业版嗷,学习起来爽一点 在idea中下载这个插件就行了 我们之后开始创建Spring项目, 蓝色 部分自己起名,type选Maven,其他的默认就好了,之后nex…...
关于 js:1. 基础语法与核心概念
js 全称 JavaScript(简称 JS),是 一种运行在浏览器和服务器端的脚本语言。 用途: 浏览器端交互(如:点击按钮出现弹窗) 网页动态内容渲染(如:淘宝、京东页面更新…...
云境天合水陆安全漏电监测仪—迅速确定是否存在漏电现象
云境天合水陆安全漏电监测仪是一种专为水下及潮湿环境设计的电气安全检测设备,通过高灵敏度电磁传感器探测漏电电流产生的交变磁场,基于法拉第电磁感应定律,自动区分高灵敏度信号和低灵敏度信号,精准定位泄漏电源的具体位置。一旦…...
二、Hadoop狭义和广义的理解
作者:IvanCodes 日期:2025年5月6日🫠 专栏:Hadoop教程 Hadoop 的双重身份:核心框架与生态系统 在大数据领域,Hadoop 是一个广为人知的概念,但它并非单指某一个软件,而是涵盖了两个层…...