【扩散模型】【网络结构探索】神经网络扩散:Neural Network Diffusion(论文解读)

项目地址:https://github.com/NUS-HPC-AI-Lab/Neural-Network-Diffusion


文章目录

  • 摘要
  • 一、前言
  • 二、Nerual Network Diffusion (神经网络扩散)
    • 2.1扩散模型(预备知识)
    • 2.2 总览
    • 2.3 参数自动编码器
    • 2.4 参数生成
  • 三、实验
    • 3.1 设置
    • 3.2 结果
    • 3.3 消融实验与分析
  • 四、P-diff只是记忆吗?
    • 4.1 问题和实验设计
    • 4.2 相似性指标
    • 4.3 预测的相似性
    • 4.4 潜在表示的比较
    • 4.5 p-diff过程的运动轨迹
    • 4.6 从记忆到生成新的参数
  • 五、相关工作
    • 1.引入库
    • 2.读入数据
  • 总结


摘要

  扩散模型在图像和视频生成方面取得了显著的成功。这项工作证明了,扩散模型也可以生成高性能的神经网络参数利用一个自动编码器和一个标准的潜在扩散模型。自动编码器提取训练后的网络参数子集的潜在表示。然后训练一个扩散模型,从随机噪声中合成这些潜在的参数表示。然后,它生成新的表示,通过自动编码器的解码器,其输出准备用作网络参数的新子集。

  在不同的架构和数据集上,我们的扩散过程始终以最小的额外成本生成与训练网络相比的性能相当或改进的模型。值得注意的是,我们根据经验发现,生成的模型与训练后的网络表现不同。


一、前言

  扩散模型的起源可以追溯到非平衡热力学。在(Sohl-Dickstein等人)中,首先利用扩散过程逐步去除输入中的噪声,并生成清晰的图像。后来的工作,如DDPM和DDIM,采用了以正向过程和反向过程为特征的训练范式,细化了扩散模型。

  当时,由扩散模型生成的图像的质量还没有达到预期的水平。Guided-Diffusion进行了消融,找到了更好的架构,这代表了将扩散模型超越基于GAN的方法的开创性努力。随后,GLIDE、Imagen、DALL·E2和SD实现了艺术家所采用的逼真图像。

  扩散模型在其他领域的潜力:本文展示了扩散模型在生成高性能模型参数方面的惊人能力,这是一项与传统的视觉生成有根本不同的任务。 参数生成的重点是创建能够在给定任务上表现良好的神经网络参数。从先验和概率建模方面进行了探索,即 随机神经网络 贝叶斯神经网络。然而,在参数生成中使用扩散模型还没有得到很好的探索。

  仔细研究神经网络训练和扩散模型,基于扩散的图像生成随机梯度下降(SGD)学习过程在以下几个方面有共同之处 (如图1,顶部为扩散过程;底部为ResNet-18在CIFAR-100训练过程中批归一化(BN)的参数分布。上半部分为BN权重,下半部分为 BN偏差。)

在这里插入图片描述

i)神经网络训练和扩散模型的反向过程都可以看作是从随机噪声/初始化到特定分布的过渡。
ii)高质量的图像和高性能的参数也可以通过多重噪声的添加而退化为简单的分布,如高斯分布。

  基于上述观察,我们引入了一种新的参数生成方法,即神经网络扩散 p-diff(p代表参数),该方法采用了一个标准的潜在扩散模型来合成一组新的参数。这是由于扩散模型有能力将给定的随机分布转换为特定的随机分布。首先,对于由SGD优化器训练的模型参数的一个子集,我们训练自动编码器来提取这些参数的潜在表示。然后,我们利用一个标准的潜在扩散模型来综合来自随机噪声的潜在表示。最后,将合成的潜在表示通过经过训练的自动编码器的解码器,得到新的高性能模型参数。

  我们的方法有以下特点:
i)它在几秒内跨多个数据集和架构实现相似甚至增强的性能,即由SGD优化器训练的模型。
ii)我们生成的模型,与训练好的模型有很大的差异,这说明我们的方法可以合成新的参数,而不是记忆训练样本。

二、Nerual Network Diffusion (神经网络扩散)

2.1扩散模型(预备知识)

  扩散模型通常由由 timesteps 索引的多步链中的正向和反向过程组成

前向过程

  给定一个样本 x0∼q (x),正向过程在T步中,逐步增加的高斯噪声,得到x1、x2、···、xT:

在这里插入图片描述
其中q和N表示前向过程,以及由 βt 参数化的高斯噪声,I 为单位矩阵。

反向过程

  反向过程的目的是训练一个去噪网络递归地去除 xt 中的噪声。当t从T减少到0时,它在多步链上向后移动。数学表述为:

在这里插入图片描述
  其中p表示反向过程,µθ(xt, t)Σθ(xt, t) 是由去噪网络参数θ估计的高斯均值和方差。去噪网络采用标准负对数似然法 进行优化(DKL(·||·) 为KL散度):

在这里插入图片描述
  训练扩散模型的目标是找到在每个时间步长t中,最大化 forward transitions的似然的 reverse transitions。在实践中,训练等价地由最小化变分上界构成。推理过程的目的,是通过优化去噪参数θ 和反向的多步链,从随机噪声中生成新的样本。

训练和推理程序

2.2 总览

  神经网络扩散 p-diff ,目的是从随机噪声中生成高性能的参数。如图2所示,方法由两个过程组成,即参数自动编码器和生成器

在这里插入图片描述

1.给定一组训练好的高性能模型,选择参数中的一个子集,并压平为一维向量。
2.引入一个编码器,从这些向量中提取潜在表示,并伴随着一个解码器,负责从潜在表示中重建参数。
3.训练一个标准的潜在扩散模型,从随机噪声中合成潜在表示。

  经过训练后,利用p-diff通过以下链生成新的参数:随机噪声→反向处理→训练的解码器→生成的参数

2.3 参数自动编码器

2.3.1数据准备
  收集自动编码器的训练数据,我们从头开始训练一个模型,并在最后一个epoch密集地保存权重(只通过SGD优化器更新参数子集,并修复模型的剩余参数)。利用保存的参数子集S=[s1…,sk,…,sK]来训练自动编码器,其中K是训练样本的数量。对于一些在大规模数据集上训练的大型架构,考虑到从头训练的成本,对预训练模型的参数子集进行微调,并将微调后的参数密集保存为训练样本。

2.3.2训练
  将参数S压缩成一维向量 V = [v1,…,vk,…,vK],其中 V∈RK×D ,D是子集参数的大小。然后,训练一个自动编码器来重构这些参数V。为了增强其鲁棒性和泛化性,在输入参数和潜在表示中同时引入了随机噪声增强。Encoder和Decoder过程:

在这里插入图片描述
其中,fencoder(·, σ)fdecoder(·, ρ) 分别表示由σ和ρ参数化的编码器和解码器。
Z为潜在表示,ξ为随机噪声,Z表示,V’ 为重构参数。默认使用一个一个4层编码器和解码器的自动编码器。将V’V之间的均方误差(MSE)损失最小化如下:

在这里插入图片描述

2.4 参数生成

  最直接的策略是,通过扩散模型直接生成新的参数。该操作的内存成本太重,特别是当V的维数超大时。在此基础上,我们将扩散过程默认应用于潜在表示Z,具体使用DDPM来优化:

在这里插入图片描述
其中t在1和T之间均匀采样,超参数 α ˉ \bar{α} αˉt 表示每一步的噪声强度,ϵ是添加的高斯噪声,ϵθ表示由θ参数化的去噪网络。训练完成后,直接利用随机噪声,逆扩散和解码,生成一组新的高性能参数。这些生成的参数与剩余的模型参数连接起来,形成新的模型进行评估。神经网络参数和图像像素在几个关键方面表现出显著的差异,包括数据类型、维度、范围和物理解释。与图像不同的是,神经网络参数大多没有空间相关性,因此我们在参数自编码器和参数生成过程中,用一维卷积代替二维卷积

三、实验

3.1 设置

3.1.1数据集和框架

  评估数据集,包括MNIST,CIFAR-10/100,ImageNet-1K,STL-10,Flowers,Pets和F-101。网络主要在ResNet-18/50、ViT-Tiny/Base和ConvNeXt-T/B上进行实验。

3.1.2训练细节

  自动编码器和潜在扩散模型都包括一个基于4层的一维CNN的Encoder和Decoder。默认所有框架接收200个训练数据。ResNet-18/50,从零开始训练。在最后一个阶段,我们继续训练最后两个BN层,并修复其他参数。在最后一个epoch保存了200个checkpoints。对于ViT-Tiny/Base和ConvNeXt-T/B,使用timm库中发布的模型的最后两个标准化参数进行了微调。ξV和ξZ为振幅分别为0.001和0.1的高斯噪声。自动编码器和潜扩散训练可以在单个Nvidia A100 40G GPU上在1到3小时内完成

3.1.3推理细节

  通过在潜在扩散模型和训练解码器中加入随机噪声,合成了100个新参数。然后将这些合成参数与上述固定参数连接起来,形成我们生成的模型。从这些生成的模型中,我们选择了在训练集上表现最好的模型。随后,我们在验证集上评估其准确性,并报告结果。这是考虑与使用SGD优化训练的模型进行公平比较的问题。

3.2 结果

  表1显示了与8个数据集和6个架构上的两个基线的结果比较。基于这些结果,我们有以下几个观察结果: i)在大多数情况下,我们的方法获得了比两个基线相似或更好的结果。这表明,我们的方法可以有效地学习高性能参数的分布,并从随机噪声中生成优越的模型。ii)我们的方法在各种数据集上始终表现良好,这表明我们的方法具有良好的通用性。
在这里插入图片描述

3.3 消融实验与分析

  消融实验默认在CIFAR-100上训练ResNet-18,并报告最好的、平均的和中等的准确性。

3.3.1训练模型的数量
  表2.(a)改变了训练数据的大小,即原始模型的数量。我们发现,不同数量的原始模型之间的最佳结果的性能差距很小。为了全面探讨不同数量的训练数据对性能稳定性的影响,采用平均值(avg.)和中位数(med.)准确性,作为我们生成的模型的稳定性的指标。值得注意的是, 由少量训练实例生成的模型的稳定性,比在较大的设置中观察到的要差得多 。这可以用扩散模型的学习原理来解释:如果只使用少量的输入样本进行训练,扩散过程可能很难很好地模拟目标分布。

在这里插入图片描述

3.3.2在哪里应用 p-diff
  我们默认是合成最后两个标准化层的参数。为了研究p-diff在其他归一化层深度上的有效性,我们还探讨了合成其他浅层参数的性能。为了保持相同数量的BN参数,我们对三组BN层实现了我们的方法,它们是在不同深度的层之间。如表2(b), 方法在所有BN层设置的深度上都比原始模型获得了更好的性能(最佳精度)。另一个发现是, 合成深层比生成浅层可以获得更好的精度。这是因为生成浅层参数比生成深层参数更容易在正向传播过程中积累误差。

3.3.3噪声增强
  噪声增强是为了增强训练自动编码器的鲁棒性和泛化性。我们分别降低了在输入参数和潜在表示中应用这种增强的有效性。消融结果见表2(c)

i)噪声增强在生成稳定和高性能的模型中起着至关重要的作用
ii)在潜在表示中应用噪声增强的性能增益,大于在输入参数中
iii)我们的默认设置,在参数和表示中联合使用噪声增强,获得了最佳的性能

3.3.4对整个模型参数的泛化
  以上评估了在综合模型参数的一个子集方面的有效性,即批处理归一化参数。为评估综合整个模型参数,将其扩展到两个小的架构,即MLP-3(三个线性层+ReLU激活)和ConvNet-3(三个卷积层+一个线性层)。与前面提到的训练数据收集策略不同,我们分别用200个不同的随机种子从头开始单独训练这些架构。我们以CIFAR-10为例,展示了两种框架的细节(卷积层:核大小×核大小,通道数量;线性层:输入维度,输出维度):

• ConvNet-3: conv1. 3×3, 32, conv2. 3×3, 32, conv3. 3×3,
32, linear layer. 2048, 10.

• MLP-3: linear layer1. 3072, 50, linear layer2. 50, 25,
linear layer3. 25, 10.

  我们在表3展示了本方法和两个基线(即原始和集成)之间的结果比较,证明了方法在综合整个模型参数方面的有效性和泛化,即在基线上实现相似甚至改进的性能。然而,受到GPU内存的限制,无法综合大型体系结构的整个参数,如ResNet、ViT和ConvNeXt系列。
在这里插入图片描述

3.3.5原始模型的参数模式
  实验结果和消融研究证明了我们的方法在生成神经网络参数方面的有效性。为了探究这背后的内在原因,我们使用3个随机种子从头开始训练ResNet-18模型,并可视化图3中的参数。我们通过最小-最大归一化,来可视化不同层的参数分布的热图。基于卷积层(Conv.-layer2)和全连接层(fc层18层)参数的可视化,这些层之间确实存在特定的参数模式 (specific parameter
patterns)。基于对这些模式的学习,我们的方法可以生成高性能的神经网络参数。

在这里插入图片描述

四、P-diff只是记忆吗?

  主要研究原始模型和生成模型之间的差异。我们首先提出了一个相似度度量方法。然后进行了几次比较和可视化来说明我们的方法的特点

4.1 问题和实验设计

  设计以下问题:

1)p-diff是否只是记住了从训练集中的原始模型中提取的样本?
2)在添加噪声或微调原始模型和由我们的方法生成的模型之间有什么区别?

  论文中,希望p-diff能够产生一些性能不同于原始模型的新参数。为了验证这一点,我们设计了一些实验,通过比较原始模型的预测和可视化结果,来研究原始模型、噪声添加模型、微调模型、p-diff模型和p-diff模型之间的差异。

4.2 相似性指标

  默认设置(使用ResNet-18对CIFAR-100进行实验)只生成最后两批归一化层的参数。我们通过计算两个模型错误预测的联合交集(IoU)来衡量两个模型之间的相似性。IoU可以表述如下:

在这里插入图片描述
  其中Pwrong 表示验证集上错误预测的指标。IoU越高,表明两种模型的预测相似性越大。为减轻实验中性能对比的影响,我们默认选择性能优于76.5%的模型。

4.3 预测的相似性

  对于每个模型,我们通过与其他模型的IoU平均来获得其相似性。

  我们引入了四个比较: 1)原始模型之间的相似性;2)p-diff模型之间的相似性;3)原始模型和p-diff模型之间的相似性;4)原始模型和p-diff模型之间的最大相似度(最近邻)。我们计算了上述四种比较中所有模型的iou,并在图4(a).中报告了它们的平均值我们可以发现, 生成的模型之间的差异远远大于原始模型之间的差异。另一个发现是,即使原始模型和生成模型之间的最大相似性也低于原始模型之间的相似性它显示了我们的p-diff可以生成新的参数

在这里插入图片描述

噪声消融
  随机选择一个生成的模型,并从原始模型中搜索其最近邻(即最大相似度)。然后,对最近邻的随机噪声进行微调和添加,得到相应的模型。然后,我们分别用微调模型和噪声添加模型计算原始模型的相似度。最后,我们重复此操作50次,并报告其平均iou进行分析。在这个实验中,我们还限制了所有模型的性能,即在这里只使用好的模型来减少可视化的偏差。我们根据经验设置了随机噪声的振幅,其范围为0.01到0.1,以防止性能的实质性下降。

  根据图4(b)中的结果,发现微调模型和噪声添加模型的性能很难优于原始模型。此外,微调模型或噪声添加模型与原始模型之间的相似性非常高,这表明这两种操作无法获得新的但高性能的模型

4.4 潜在表示的比较

  除了预测,我们使用t-SNE评估原始和生成模型的潜在表征分布。为了识别我们的方法和在原始模型的潜在表示中添加噪声的操作之间的差异,如图4©。添加的噪声振幅为0.1的随机高斯噪声。我们可以发现,p-diff可以产生新的潜在表示,而添加噪声只是围绕原始模型的潜在表示进行插值

4.5 p-diff过程的运动轨迹

  我们在推理阶段绘制不同时间步长的生成参数,形成轨迹,以探索其生成过程。5个轨迹(由5个随机噪声初始化)如图5(a).所示我们还绘制了原始模型的平均参数及其标准差(std)。随着时间步长的增加,生成的参数总体上接近于原始模型。虽然我们对可视化保持了一个较窄的性能范围约束,但轨迹的端点(橙色三角形)与平均参数(五角星)之间仍然有一定的距离。另一个发现是,这五种轨迹是不同的。

在这里插入图片描述

4.6 从记忆到生成新的参数

  为了研究原始模型的数量(K)对生成模型的多样性的影响,我们在图5(b).中可视化了具有不同K的原始模型和生成模型之间的最大相似性具体来说,我们不断地生成参数,直到50个模型在所有情况下都优于76.5%。当K=为1时,生成的模型几乎记忆了原始模型,相似度范围较窄,值较高。随着K的增加,这些生成的模型的相似性范围变大,这表明我们的方法可以生成与原始模型不同的参数。

五、相关工作

1.引入库

2.读入数据








d \sqrt{d} d 1 0.24 \frac {1}{0.24} 0.241 x ˉ \bar{x} xˉ x ^ \hat{x} x^ x ~ \tilde{x} x~ ϵ \epsilon ϵ
ϕ \phi ϕ


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/698895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构篇36:微服务架构最佳实践 - 基础设施篇

文章目录 自动化测试自动化部署配置中心接口框架API 网关服务发现服务路由服务容错服务监控服务跟踪服务安全小结每项微服务基础设施都是一个平台、一个系统、一个解决方案,如果要自己实现,其过程和做业务系统类似,都需要经过需求分析、架构设计、开发、测试、部署上线等步骤…

HarmonyOS学习--三方库

文章目录 一、三方库获取二、常用的三方库1. UI库:2. 网络库:3. 动画库: 三、使用开源三方库1. 安装与卸载2. 使用 四、问题解决1. zsh: command not found: ohpm 一、三方库获取 在Gitee网站中获取 搜索OpenHarmony-TPC仓库,在t…

vue video 多个视频切换后视频不显示的解决方法

先说一下我这边的需求是视频需要轮播&#xff0c;一个人员有多个视频&#xff0c;左右轮播是轮播某个人员下的视频&#xff0c;上下切换是切换人员。 vue 代码 <el-carouselindicator-position"none"ref"carousel"arrow"always":interval&qu…

Mamba详细介绍和RNN、Transformer的架构可视化对比

Transformer体系结构已经成为大型语言模型(llm)成功的主要组成部分。为了进一步改进llm&#xff0c;人们正在研发可能优于Transformer体系结构的新体系结构。其中一种方法是Mamba&#xff08;一种状态空间模型&#xff09;。 Mamba: Linear-Time Sequence Modeling with Select…

CentOS7 安装SSH

说实话&#xff0c;感觉CentOS有点难用。初始配置不是很友好&#xff0c;连自动获取IP地址都是关着的。当然&#xff0c;我这里本地用的是虚拟机。 开启获取IP 首先是获取IP地址&#xff0c;这是一些的起点。 首先使用ip addr 看看网卡地址和名称。我这边是ens33。然后打开自…

【TCP/IP】组播

一、组播介绍 组播&#xff08;Multicast&#xff09;是网络技术中数据传输的一种方法&#xff0c;它允许将数据包同时发送给一组指定的目标&#xff0c;而不是单个的目标&#xff08;单播 Unicast&#xff09;或所有可能的目标&#xff08;广播 Broadcast&#xff09;。组播传…

2024年 Openai的API相关全部概论汇总(通用版)

2024年 Openai的API相关全部概论汇总&#xff08;通用版&#xff09; 文章目录 2024年 Openai的API相关全部概论汇总&#xff08;通用版&#xff09;一、前言1、python快速开始 二、Openai 平台以及相关项目1、Openai的API管理平台2、ChatGPT项目推荐&#xff08;1&#xff09;…

开源大语言模型作为 LangChain 智能体

概要 开源大型语言模型 (LLMs) 现已达到一种性能水平&#xff0c;使它们适合作为推动智能体工作流的推理引擎: Mixtral 甚至在我们的基准测试中 超过了 GPT-3.5&#xff0c;并且通过微调&#xff0c;其性能可以轻易的得到进一步增强。 引言 针对 因果语言建模 训练的大型语言模…

2024-02-21 作业

作业要求&#xff1a; 复习课上内容 //已完成结构体字节对齐&#xff0c;64位没做完的做完&#xff0c;32位重新都做一遍&#xff0c;课上指定2字节对齐的做一遍&#xff0c;自己验证 //已完成两种验证大小端对齐的代码写一遍复习指针内容 //已完成完善顺序表已写出的…

Linux运维-DHCP服务器

DHCP服务器的配置与管理 项目场景 学校各部门共有180台电脑&#xff0c;除了计算机学院的教师会配置电脑的网络连接&#xff0c;其他部门的老师和工作人员均不会&#xff0c;为了提高网络的管理效率&#xff0c;技术人员决定配置一台DHCP服务器&#xff0c;来提供动态的IP地址…

gin源码实战 day1

gin框架源码实战day1 Radix树 这个路由信息&#xff1a; r : gin.Default()r.GET("/", func1) r.GET("/search/", func2) r.GET("/support/", func3) r.GET("/blog/", func4) r.GET("/blog/:post/", func5) r.GET("/…

5G端到端案例三:锚点基站侧5G连接与VOLTE专载建立流程冲突导致CSFB回落问题

1. 问题描述&#xff1a; NSA组网场景下&#xff0c;语音业务仍使用4G VoLTE方案&#xff0c;在拉网测试中&#xff0c;发现存在较多流程交叉导致的VOLTE接入失败的问题。 流程冲突时的空口信令表现为&#xff0c;终端添加SCG流程与语音专载流程冲突时&#xff0c;专有承载建…

重点媒体如何投稿?考核稿件投稿指南

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 机构组织&#xff0c;国企央企都需要定期将相关新闻投递到央媒&#xff0c;官媒&#xff0c;或者地方重点媒体中&#xff0c;那么如何进行投稿了&#xff0c;今天就与大家分享下。 央媒投…

vue-nextTick(nextTick---入门到离职系列)

官方定义 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法&#xff0c;获取更新后的 DOM。 个人理解 假设我们更改了某个 dom 元素内部的文本&#xff0c;而这时候我们想直接打印这个更改之后的文本是需要 dom 更新之后才会实现的。 小案例 <tem…

聊一聊EGO-Planner膨胀系数的大小对无人机避障飞行的影响

EGO-Planner简介 EGO-Planner作为业界知名的无人机轨迹规划算法&#xff0c;其优势在于能够在复杂环境中快速规划出安全、平滑且动态可行的飞行轨迹。在这个算法中&#xff0c;膨胀系数发挥着关键作用。它通过扩大障碍物的感知范围&#xff0c;提供额外的安全边距&#xff0c;…

NOIP2018-J-4-对称二叉树的题解

原题描述&#xff1a; 题目描述 时间&#xff1a;1s 空间&#xff1a;256M 一棵有点权的有根树如果满足以下条件&#xff0c;则被轩轩称为对称二叉树&#xff1a; 1. 二叉树&#xff1b; 2. 将这棵树所有节点的左右子树交换&#xff0c;新树和原树对应位置的结构相同且…

【深度学习】LoRA: Low-Rank Adaptation of Large Language Models,论文解读

文章&#xff1a; https://arxiv.org/abs/2106.09685 文章目录 摘要介绍LoRA的特点什么是低秩适应矩阵&#xff1f;什么是适应阶段&#xff1f;低秩适应矩阵被注入到预训练模型的每一层Transformer结构中&#xff0c;这一步是如何做到的&#xff1f; 摘要 自然语言处理的一个重…

计算机网络-网络互联与互联网(一)

1.常用网络互联设备&#xff1a; 1层物理层&#xff1a;中继器、集线器2层链路层&#xff1a;网桥、交换机3层网络层&#xff1a;路由器、三层交换机4层以上高层&#xff1a;网关 2.网络互联设备&#xff1a; 中继器Repeater、集线器Hub&#xff08;又叫多端口中继器&#xf…

图论(算法竞赛、蓝桥杯)--Dijkstra算法最短路

1、B站视频链接&#xff1a;D02 最短路 Dijkstra 算法_哔哩哔哩_bilibili 题目链接&#xff1a;【模板】单源最短路径&#xff08;弱化版&#xff09; - 洛谷 #include <bits/stdc.h> using namespace std; #define INF 2147483647 int n,m,s,a,b,c; const int N100010…

Redis的主从复制和哨兵模式

Redis的主从复制和哨兵模式 Redis集群搭建&#xff08;一主二从&#xff09;replication 主从复制配置文件 redis.confRedis主从复制工作原理全量复制增量复制redis主从复制策略 搭建集群 &#xff08;主从复制引入&#xff09; 哨兵模式概念哨兵配置文件 sentinel.conf哨兵配置…