机器学习第四十周周报 WDN GGNN

文章目录

  • week40 WDN GGNN
  • 摘要
  • Abstract
  • 一、文献阅读
    • 1. 题目
    • 2. abstract
    • 3. 网络架构
      • 3.1 问题提出
      • 3.2 GNN
      • 3.3 CSI GGNN
    • 4. 文献解读
      • 4.1 Introduction
      • 4.2 创新点
      • 4.3 实验过程
        • 4.3.1 数据获取
        • 4.3.2 参数设置
        • 4.3.3 实验结果
    • 5. 结论
    • 二、GGNN
      • 1. 代码解释
      • 2. 网络结构
      • 小结
      • 参考文献
      • 参考文献

week40 WDN GGNN

摘要

本周阅读了题为Gated graph neural networks for identifying contamination sources in water distribution systems的论文。该研究针对 WDN 中的 CSI 开发了 GGNN 模型。它考虑WDN的拓扑来表示有效CSI的水质数据的时空分布特征。利用水流方向构建邻接矩阵来探索节点间的信息传递,并将传感器站采集的时间序列水质数据作为节点属性输入到GGNN模型中。基于 GGNN 的 CSI 方法的有效性在真实的 WDN 中进行了测试

Abstract

This week’s weekly newspaper decodes the paper entitled Gated graph neural networks for identifying contamination sources in water distribution systems. This study develops a GGNN model for CSI in a WDN. It considers the topology of a WDN to represent the spatiotemporal dis­tribution characteristics of water quality data for effective CSI. Hy­raulic flow directions are used to build the adjacent matrix to explore the information transmission between nodes, and time series water quality data collected by sensor stations are used as node attributes input to the GGNN model. The effectiveness of the GGNN-based CSI method is tested in a real WDN and the main conclusions derived are summarised below.

一、文献阅读

1. 题目

标题:Gated graph neural networks for identifying contamination sources in water distribution systems

作者:Zilin Li, Haixing Liu, Chi Zhang, Guangtao Fu

期刊名:Journal of Environmental Management

链接:https://doi.org/10.1016/j.jenvman.2023.119806

2. abstract

该研究提出了一种用于 WDN(配水管网) CSI(污染源识别) 的门控图神经网络 (GGNN),结合了时空水质数据网络节点之间的流向。通过对各种污染场景进行评估,GGNN 即使在传感器覆盖范围有限的情况下也表现出很高的预测精度。定向连接显着提高了 GGNN CSI 准确性,强调了网络拓扑和流动态在基于 ML(机器学习) 的 WDN CSI 方法中的重要性。具体来说,该方法仅使用 2 小时的传感器数据即可将污染源缩小到 5 个点,准确率达到 92.27%。 GGNN 展示了模型和测量不确定性下的弹性,重申了其在实践中实时实施的潜力。

This study proposes a gated graph neural network (GGNN) for CSI in the WDN, incorporating both spatiotemporal water quality data and flow directionality between network nodes. Evaluated across various contamination scenarios, the GGNN demonstrates high prediction accuracy even with limited sensor coverage. Notably, directional connections significantly enhance the GGNN CSI accuracy, underscoring the importance of network topology and flow dynamics in ML-based WDN CSI approaches. Specifically, the method achieves a 92.27% accuracy in narrowing the contamination source to 5 points using just 2 h of sensor data. The GGNN showcases resilience under model and measurement uncertainties, reaffirming its potential for real-time implementation in practice.

3. 网络架构

3.1 问题提出

假设WDN中的 N s N_s Ns个站点部署了水质传感器,对于一次污染事件,WDN中的水质数据样本可以表示为 X ∈ R N s × N c X ∈ \mathbb {R}^{N_s\times N_c} XRNs×Nc,其中 N c N_c Nc表示特定时间周期 T c T_c Tc内获取的样本数量。将 CSI 表述为一个分类问题。更具体地说,给定第 i 个污染事件的数据样本矩阵 X i X_i Xi,CSI 问题是确定几个潜在网络节点处的污染源,即 y ^ i = f ( X i ) \hat y_i = f(X_i) y^i=f(Xi),其中 f 是具体的污染源分类模型。如果 y ^ i = y i \hat y_i = y_i y^i=yi,则污染源被正确识别,其中 y i y_i yi​ 表示对应的真实污染源节点。

3.2 GNN

GNN 通过消息传递计算每个节点的状态向量,从而能够处理此类图结构数据。这些状态向量捕获有关图的本地和全局信息,对于分类、回归和聚类等各种下游任务很有价值。

在原始的 GNN 模型中,传播被限制在收敛到一个固定点之前进行操作,这限制了其灵活性,特别是对于节点分类等任务。为了克服这个限制,引入了 GGNN。 GGNN 释放了收敛到固定点的要求,并结合了一定数量的时间步长的门控循环单元 (GRU)。每个节点的状态更新考虑其先前的表示 h v ( k − 1 ) h_v^{(k−1)} hv(k1) 及其相邻节点状态 a v ( k ) a_v^{(k)} av(k)​ 的聚合。

首先,节点 v 根据邻接矩阵聚合来自其邻接节点的消息:

image-20240524195752317

其中 x v x_v xv是包含节点v的输入属性的列向量。为了增加GGNN的表达能力,在用作初始隐藏状态之前通常会放大节点属性的大小。

然后,GGNN 使用类似 GRU 的传播步骤来更新节点的状态,可以描述为:

image-20240524200145374

然后,GGNN 使用类似 GRU 的传播步骤来更新节点的状态,可以描述为: 其中 r 和 z 是重置门和更新门; W r , W z , W & U r , U z , U W_r,W_z,W \& U_r, U_z,U Wr,Wz,W&Ur,Uz,U是每层的权重和偏差; σ ( ⋅ ) σ(·) σ() 是 sigmoid 激活函数; ⊙ \odot 是逐元素乘法。

3.3 CSI GGNN

针对 CSI 问题提出的 GGNN 模型如下所示。

image-20240524200842467

1d7b7518718c4be7a98faf1e23bd43c

ed253c60fef5ba737942bb178fd3062

节点 v x v x_v xv 的节点属性通过 ReLU 激活的标准线性组合被映射为原始隐藏状态 h v ( 0 ) h_v^{(0)} hv(0) 从原始空间 R N c \mathbb R^{N_c} RNc 到新空间 R M \mathbb R^M RM​。 M 是隐藏状态的大小。大的 M 值会增加模型的容量,但这可能会导致过拟合问题,并且当 M 太大时使训练变得更加困难。

然后将扩展邻接矩阵 ̂A = [A, AΤ] 和映射节点属性 h(0) 输入到 GGNN,并在固定的 K 步上递归计算,并输出状态矩阵 h(K) ∈ Rn×M。 K是GGNN的传播步数。对于每个节点,GGNN 执行 K 个传播步骤后即可获知 K 个最远邻居的信息。具体来说,当K = 1时,每个节点只能向其直接邻居节点学习。 K值决定了模型的学习能力和效率。较高的 K 值会使模型变慢并增加内存需求,较低的 K 值会减少每个节点可以学习的依赖项数量。

最后,GGNN h ( K ) h^{(K)} h(K) 的输出被展平为向量,并使用线性层和 softmax 层归一化为概率分布 Y ^ \hat Y Y^ Y ^ \hat Y Y^​是概率向量,表示每个节点是污染源的概率。

4. 文献解读

4.1 Introduction

由于以下实际原因,开发快速准确的方法来识别 WDN 中的污染事件源是一项挑战:

  • 首先,由于经济限制,WDN 中部署的传感器数量通常有限,这意味着只能收集空间稀疏的水质数据。
  • 其次,城市用水需求的固有变化增加了污染源识别的不确定性。
  • 第三,由于污染物可能通过管道快速扩散,及时定位污染物对于开发有效算法至关重要

机器学习算法必须解决训练过程中的数据不平衡问题,这主要是由于现实世界 WDN 中缺乏污染事件记录造成的。在现实场景中,污染数据可能会受到传感器测量精度和用户用水需求变化等因素的影响。因此,在实施模型时考虑不确定性的影响至关重要。

4.2 创新点

研究提出了一种用于 CSI 的门控图神经网络(GGNN),它可以通过将多个水质传感器站的数据与 WDN 的拓扑相结合,有效捕获节点的空间相关性。具体贡献如下:

  1. 所提出的基于 GGNN 的 CSI 方法使用模拟工具 EPANET 从不同污染源下的传感器站生成数据,同时考虑需水量和传感器测量的不确定性。
  2. 该方法利用WDN的图结构,结合网络拓扑和水流方向,实现节点和管道之间有效的编队聚合和消息传递。
  3. 使用安装了多个水质传感器的真实 WDN 评估所提出的基于 GGNN 的 CSI 方法的性能,并进行消融研究以估计网络拓扑和水流方向对检测精度的影响。
  4. 还进行了比较评估,将基于 GGNN 的 CSI 方法与广泛采用的随机森林 (RF) 算法进行了基准测试。

4.3 实验过程

4.3.1 数据获取

盐田水网如下

image-20240524211056709

该管网有两个水源(S1 和 S2)、952 个需求节点和 1175 个管道。网络中部署了33个水质传感器站。 S1依靠重力供水,平均需水量为36,000 m3 d−1。 S2有两个出水口,在重力和压力的作用下供水。总平均需求量为 42,000 m3 d−1。该网络具有24小时的需求模式,需求间隔为5分钟。

在研究中,所有污染事件均基于EPANET进行模拟。然后,生成的污染事件样本被分为训练数据集(80%)和测试数据集(20%)。根据污染源、开始时间、持续时间和浓度随机设置污染事件。实际上,WDN 中的每个节点都被假定为潜在的污染源。然而,某些节点中的污染事件可能无法被所有传感器站检测到,并且那些不触发任何水质传感器警报的污染事件将被排除在训练和评估基于GGNN的CSI方法之外。在研究中,每个传感器站的警报阈值Cthre设置为 1 m g L − 1 1 mg L^{−1} 1mgL1。对于每个节点,可以在一天中的每个小时注入污染物,持续6小时,离开源节点的污染物浓度在 50 − 100 m g L − 1 50-100 mg L^{−1} 50100mgL1之间随机设置。每个节点每24h产生Nm个污染事件(默认 N m = 5 N_m=5 Nm=5,即每个节点采样120个污染事件)。当任何传感器站触发警报时,就会收集传感器数据。节点属性Nc的大小受传感器采样间隔t1和传感器数据采集时间Tc的影响。默认采样间隔和数据收集时间分别为 5 分钟和 2 小时。本研究采用不同的 N m ( 1 ∼ 5 ) 、 t 1 ( 5 m i n 、 15 m i n ) 、 T c ( ( ∼ 5 h ) N_m(1\sim 5)、t_1(5min、15min)、T_c((\sim 5h) Nm(15)t1(5min15min)Tc(5h)​取值来改变数据样本大小和节点属性,观察不同数据采样对识别的影响基于 GGNN 的 CSI 方法的性能。

研究中的水力模型是根据不同节点的不同昼夜需求模式进行校准的。然而,WDN的实际运行过程中还存在很多不确定性。在仿真过程中考虑了每个节点的需求模式和传感器测量的不确定性,以评估基于GGNN的CSI方法的鲁棒性。使用正态分布 N ( 0 , σ 2 ) N(0, σ2) N(0,σ2) 和均匀分布 U ( − α , + α ) U(−α, +α) U(α,+α)​ 来模拟 WDN 中每个节点的需求模式和传感器测量中可能存在的噪声,如下所示:

image-20240524211759526

其中 d ( i , j ) , d ′ ( i , j ) d(i, j),d^′(i, j) d(i,j),d(i,j) 是默认和新需求模式下节点 i 在时间步 j 的需水量,c(s, j) 和 c′(s, j) 是传感器节点模拟和监测的浓度值s 在时间步 j。本研究中,σ设置为0、5%、10%、15%和20%,α设置为0、2%、5%、8%和10%。特别地,当默认需求模式和传感器测量准确时,σ和α被设置为0。

4.3.2 参数设置

image-20240524211951776

GGNN模型超参如上,GGNN模型的输出是每个节点作为污染源的概率。以下负对数似然函数用于训练 GGNN 模型:

image-20240524212312387

研究中,单个污染事件只有一个污染源,因此 Y 中真实污染源的概率值为 1,其他元素均为 0。 y ^ v \hat y_v y^v y v y_v yv Y ^ \hat Y Y^ Y Y Y​ 中表示预测的元素以及节点 v 作为污染源的真实概率

基于 GGNN 的 CSI 方法的训练时间根据所使用的数据集而变化。污染源识别过程的执行是瞬时的,因此CSI方法的检测时间主要取决于传感器数据采集时间Tc。所有实验均在 Google Colab Pro 上进行,这是一项可用于深度学习研究的云服务。

T O P c TOP_c TOPc 用于评估训练过程后的模型精度,计算公式:

image-20240524212544403

在研究中,使用四个不同的 c 值(c = 1、3、5 和 10)来评估模型的准确性。

RF是一种用于识别 WDN 污染源的常用机器学习技术,被选为比较基准。所提出的基于 GGNN 的 CSI 方法针对 RF 进行了评估,以评估其在 WDN 内污染源识别方面的性能。

4.3.3 实验结果

关于模型效果的实验

使用默认参数生成的大量污染事件来测试所提出的基于 GGNN 的 CSI 方法的性能。训练过程中的损失函数图如下所示。

image-20240524213043286

下图显示了测试过程中基于 GGNN 的 CSI 方法在不同训练 epoch 数下的性能。

image-20240524213122530

上述实验表明,梯度在训练过程中和训练过程中持续存在。基于GGNN的CSI方法具有很高的稳定性。研究中使用的默认训练周期为 50,以保持基于 GGNN 的 CSI 方法在所有实验中的稳定性。实际中,当训练损失稳定时,可以终止训练过程以减少训练时间。

下表展示了 GGNN 和 RF 在不同评估指标(TOP1、TOP3、TOP5;TOP10)上的预测精度比较。

image-20240524213338135

GGNN在所有预测精度方面均优于 RF。在 TOP1 分类(最可能的污染源)中,GGNN 达到了 51.23% 的准确率,超过 RF 11.84%。

这些结果凸显了 GGNN 模型在定位 WDN 内污染源方面的有效性。此外,这种优异的性能强调了 GNN 相对于 RF 等传统机器学习方法在准确识别污染源方面的潜力。

image-20240524213505087

上图展示了模型对污染事件的预测示例。红十字代表真实的污染源,不透明的灰色圆圈代表预测的污染源。这证明了基于 GGNN 的 CSI 方法在识别 WDN 中可能的污染源方面的有效性。

image-20240524213757907

上图显示了触发警报识别真实污染源的累积准确度曲线,其中给出了在不同数量的传感器警报下正确识别真实污染源的测试样本的累积百分比。基于GGNN的CSI方法仅需要1次警报就可以识别大约一半的污染事件,并且在3次或更少的警报下累积准确率可以占所有识别的污染源样本的80%,这意味着基于GGNN的CSI方法具有良好的性能即使触发的警报较少

网络拓扑和水力流向的影响(消融实验)

使用了三种模型进行比较:有向图、无向图和全连接图,其中每个节点都链接到所有其他节点。所有模型均使用相同的数据集(Nm = 1、t1 = 5min、Tc = 2h、α = 0 和 σ = 0)进行训练和测试。

image-20240524214020407

上表展示了GGNN方法在使用有向、无向和全连接图网络的测试过程中的预测精度。结果表明,在有向图上训练的模型在测试集上达到了最高的准确率,优于在无向图和全连接图上训练的模型。在无向图上训练的模型准确率略低于有向图,而在全连接图上训练的模型在测试集上表现较差(TOP1、TOP3、TOP5、TOP10的预测准确率)小于10%)。

有向图使模型能够捕获液压流方向和节点之间的相互作用,这对于准确的系统识别至关重要。相比之下,全连接图引入了大量不必要的连接。

不同数据采样方法的影响

image-20240524214325270

如上图所示,基于GGNN的5分钟采样间隔输入的CSI方法比15分钟采样间隔输入的方法获得了更高的精度(TOP1,TOP3,TOP5;TOP10)。提高采样频率可以提高基于GGNN的CSI方法的识别性能。

基于GGNN的CSI方法的预测精度可以通过增加一定时间范围内的数据收集时间来提高。

image-20240524215042319

随着更多的样本进行训练,预测精度预计会得到提高,但上图的结果表明,虽然确实出现了增加,但增加的速度很快就趋于平稳。

当Nm = 1时,TOP1、TOP3、TOP5和TOP10分别为40.92%、73.24%、86.00%和95.96%,并随着Nm = 2而增加。然而,当Nm > 2时,改进可以忽略不计。随着污染源定位范围从1个节点扩大到10个节点,预测精度对数据量的敏感度降低,表现为数据量的精度变异性较小。

需求和测量不确定性对识别性能的影响

image-20240524215332239

上表显示了考虑需求和测量不确定性后测试样本的预测精度。基于指标的不同评估,给出了 25 组实验的预测精度的平均值和标准偏差。 TOP1、TOP3、TOP5、TOP10的平均值分别为41.29%、75.08%、87.01%、96.59%。 TOP1 的标准差最大(2.31%),TOP10 的标准差最小(0.30%)

结果表明,不同实验对预测精度影响不大,最大标准差为2.31%,表明CSI的稳健性。而且,随着污染源定位范围的扩大,标准差逐渐变小,表明随着范围的增加,预测精度受需求模式和测量精度的影响较小。

image-20240524215439675

上图显示了 25 组实验中每一组的预测精度,这些实验是为了测试需求和测量不确定性对基于 GGNN 的 CSI 方法的识别性能的影响。

热图表明,传感器测量的精度与模型精度呈负相关,而需求不确定性影响很小,也没有明显的相关性。因此,为了在实践中获得更高的预测精度,更重要的是优先考虑传感器精度而不是需求精度。

5. 结论

得出的主要结论总结如下:

  1. 所提出的 GGNN 方法在多个预测精度方面优于常用的 RF 算法,并且在识别污染源方面表现出强大的性能,即使在检测污染的传感器数量有限的情况下也能证明其有效性。这意味着该模型可以在污染事件的早期阶段有效识别污染源,使水务公司能够及时采取补救措施以减少影响。
  2. 节点之间连接的方向性显着影响基于GGNN的CSI方法的有效性。有向图模型优于无向图和全连接图模型,强调了构建基于 GGNN 的 CSI 方法时网络拓扑和节点之间的水力流动方向的重要性。
  3. 所提出的基于GGNN的预测精度可以随着采样频率的增加而提高。然而,准确性并不总是随着数据收集时间的延长而提高,并且对训练数据的大小不太敏感。在实际应用中,可以采用采样频率较高的水质传感器来提高预测精度,缩短识别时间。
  4. 所提出的基于 GGNN 的 CSI 方法展示了针对变化的需求和测量不确定性的弹性。与水力模型的不确定性(例如WDN中每个节点的需求模式)相比,水质传感器的测量不确定性对识别精度的影响更大。当污染源位于越来越多的节点位置时,需求和测量不确定性对识别性能的影响就会减弱。

GGNN 模型被提出来识别 WDN 中的污染源,但是,它仅在单个污染源的污染事件上进行了测试。

未来的工作可以探索基于 GGNN 的 CSI 方法在涉及两个或多个污染源的污染事件中的性能

二、GGNN

来源论文
Gated Graph Sequence Neural Networks,ICLR 2016
链接:https://arxiv.org/abs/1511.05493
官方实现(Lua):https://github.com/yujiali/ggnn
第三方实现(pytorch):https://github.com/calebmah/ggnn.pytorch

1. 代码解释

@JamesChuanggg的pytorch实现ggnn.pytorch,这个实现的代码相比于官方版本来说,容易读很多

  1. annotation
annotation = np.zeros([n_nodes, n_annotation_dim])
annotation[target[1]-1][0] = 1	
  1. 各时间步实现
class Propogator(nn.Module):
    """
    Gated Propogator for GGNN
    Using LSTM gating mechanism
    """
    def __init__(self, state_dim, n_node, n_edge_types):
        ## 初始化参照源代码
    def forward(self, state_in, state_out, state_cur, A):
        # 入边向量和出边向量
        A_in = A[:, :, :self.n_node*self.n_edge_types]
        A_out = A[:, :, self.n_node*self.n_edge_types:]

        # 入边向量和出边向量分别和图做计算
        a_in = torch.bmm(A_in, state_in)
        a_out = torch.bmm(A_out, state_out)
        a = torch.cat((a_in, a_out, state_cur), 2)

        # 类GRU部分
        r = self.reset_gate(a)
        z = self.update_gate(a)
        joined_input = torch.cat((a_in, a_out, r * state_cur), 2)
        h_hat = self.tansform(joined_input)

        output = (1 - z) * state_cur + z * h_hat

        return output
  1. 网络结构
class GGNN(nn.Module):
    """
    Gated Graph Sequence Neural Networks (GGNN)
    Mode: SelectNode
    Implementation based on https://arxiv.org/abs/1511.05493
    """
    def __init__(self, opt):
        # 初始化参考源代码
    def forward(self, prop_state, annotation, A):
        # prop_state:论文中的h
        # annotation:节点标注
        # A:图
        for i_step in range(self.n_steps):
            # 对于每一个时间步循环
            in_states = []
            out_states = []
            for i in range(self.n_edge_types):
                # 对输入特征做两个分支的全连接,得到入边特征,和出边特征
                # 每一种边都要计算一次
                in_states.append(self.in_fcs[i](prop_state))
                out_states.append(self.out_fcs[i](prop_state))
            # 将所有种类的边得到的特征连接起来
            in_states = torch.stack(in_states).transpose(0, 1).contiguous()
            in_states = in_states.view(-1, self.n_node*self.n_edge_types, self.state_dim)
            out_states = torch.stack(out_states).transpose(0, 1).contiguous()
            out_states = out_states.view(-1, self.n_node*self.n_edge_types, self.state_dim)

            # 用门控图模块更新h
            prop_state = self.propogator(in_states, out_states, prop_state, A)

        join_state = torch.cat((prop_state, annotation), 2)

        output = self.out(join_state)
        output = output.sum(2)

        return output

2. 网络结构

基本概念
GGNN是一种基于GRU的经典的空间域message passing的模型

问题描述
一个图 G = (V, E), 节点v ∈ V中存储D维向量,边e ∈ E中存储D × D维矩阵, 目的是构建网络GGNN。
实现每一次参数更新时,每个节点既接受相邻节点的信息,又向相邻节点发送信息。

image-20240524220521078

image-20240524220605163

小结

研究提出了一种用于 CSI 的门控图神经网络(GGNN),它可以通过将多个水质传感器站的数据与 WDN 的拓扑相结合,有效捕获节点的空间相关性。所提出的基于 GGNN 的 CSI 方法使用模拟工具 EPANET 从不同污染源下的传感器站生成数据,同时考虑需水量和传感器测量的不确定性。该方法利用WDN的图结构,结合网络拓扑和水流方向,实现节点和管道之间有效的编队聚合和消息传递。使用安装了多个水质传感器的真实 WDN 评估所提出的基于 GGNN 的 CSI 方法的性能,并进行消融研究以估计网络拓扑和水流方向对检测精度的影响。还进行了比较评估,将基于 GGNN 的 CSI 方法与广泛采用的随机森林 (RF) 算法进行了基准测试。

参考文献

种用于 CSI 的门控图神经网络(GGNN),它可以通过将多个水质传感器站的数据与 WDN 的拓扑相结合,有效捕获节点的空间相关性。所提出的基于 GGNN 的 CSI 方法使用模拟工具 EPANET 从不同污染源下的传感器站生成数据,同时考虑需水量和传感器测量的不确定性。该方法利用WDN的图结构,结合网络拓扑和水流方向,实现节点和管道之间有效的编队聚合和消息传递。使用安装了多个水质传感器的真实 WDN 评估所提出的基于 GGNN 的 CSI 方法的性能,并进行消融研究以估计网络拓扑和水流方向对检测精度的影响。还进行了比较评估,将基于 GGNN 的 CSI 方法与广泛采用的随机森林 (RF) 算法进行了基准测试。

参考文献

[1] Zilin Li, Haixing Liu, Chi Zhang, Guangtao Fu, “Gated graph neural networks for identifying contamination sources in water distribution systems” [J], Journal of Environmental Management https://doi.org/10.1016/j.jenvman.2023.119806

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

211初试自命题复试线仅302分!延边大学计算机考研考情分析!

延边大学(Yanbian University),简称“延大”,地处吉林省延边朝鲜族自治州,是国家“双一流”建设高校、国家“211工程”重点建设大学、西部开发重点建设院校、吉林省人民政府和教育部共同重点支持建设大学、吉林省人民政…

Redis基础篇

文章目录 2 Redis入门概述3 Redis10大数据类型3.1 Redis自字符串String3.2 Redis列表List3.3 Redis哈希Hash3.4 Redis集合Set3.5 Redis有序集合Sorted Set3.6 Redis地理空间 GEO3.7 Redis基数统计 HyperLogLog3.8 Redis位图bitmap3.9 Redis位域bitField3.10 Redis流Stream 4 Re…

开源大模型与闭源大模型:谁主沉浮?

目录 🍉引言 🍉数据隐私 🍈开源大模型的优势与挑战 🍍优势: 🍍挑战: 🍈闭源大模型的优势与挑战 🍍优势: 🍍挑战: &#x1f34…

草图大师2024怎么保存低版本呢?插件怎么写?

草图大师是一款流行的绘图和设计软件,为了向后兼容,保存低版本文件时,可以采取以下步骤: su模型库 1.另存为旧版本格式: 在保存文件时,草图大师通常会提供一个选项,让你选择要保存的文件格式和…

vmware - 主机向虚拟机拷贝文件的临时方法

文章目录 vmware - 主机向虚拟机拷贝文件的临时方法概述笔记确认主机/虚拟机之间网络是通的在虚拟机中新建一个文件夹(e.g. c:\test), 将这个文件夹设为共享文件夹。查看虚拟机中的当前用户(远程登录要用)远程登录备注 - win8.1只能用mstscEND vmware - 主机向虚拟机拷贝文件的…

【传知代码】transformer-论文复现

文章目录 概述原理介绍模型架构 核心逻辑嵌入表示层注意力层前馈层残差连接和层归一化编码器和解码器结构 数据处理和模型训练环境配置小结 本文涉及的源码可从transforme该文章下方附件获取 概述 Transformer模型是由谷歌在2017年提出并首先应用于机器翻译的神经网络模型结构…

虚拟化技术[1]之服务器虚拟化

文章目录 虚拟化技术简介数据中心虚拟化 服务器虚拟化服务器虚拟化层次寄居虚拟化裸机虚拟化VMM无法直接捕获特权指令解决方案 服务器虚拟化底层实现CPU虚拟化内存虚拟化I/O设备虚拟化 虚拟机迁移虚拟机动态迁移迁移内容:内存迁移迁移内容:网络资源迁移迁…

小结5:朗读练习第二段

五、朗读练习2 2024-5-6始,5-14终,5-15写。 我渐渐体会到一些朗读的乐趣。但我还要考研,要写作业、期末考试。如果是在大一该多好。我可以就这样一天一天的写下去,慢慢地有一些自己的作品,还能录视频发到b站上。 上一篇…

codewars check_same_case 题解

题目 编写一个函数来检查两个给定的字符是否大小写相同。 如果任何字符不是字母,则返回-1如果两个字符大小写相同,则返回1如果两个字符都是字母且大小写不同,则返回0 例子 a并g返回1A并C返回1b并G返回0B并g返回00并?返回-1题解 1 此题主…

在Windows上创建RAM Disk

在Windows 10上创建一个与Linux中的tmpfs相似的内存文件系统(一个文件系统,它使用主内存作为存储)通常不是操作系统直接提供的功能。不过,有一些方法可以实现类似的效果。 使用软件创建RAM Disk 有一些第三方软件可以帮助在Wind…

自主创新助力科技强军,麒麟信安闪耀第九届军博会

由中国指挥与控制学会主办的中国指挥控制大会暨第九届北京军博会于5月17日-19日在北京国家会议中心盛大开展,政府、军队、武警、公安、交通、人防、航天、航空、兵器、船舶、电科集团等从事国防军工技术与产业领域的30000多名代表到场参加。 麒麟信安作为国产化方案…

2024年英国皇家学会新增院士名单和三位华人学者简介

近日,英国皇家学会公布了2024年新当选的院士及外籍院士名单,他们也是访问学者、博士后及联合培养博士们关注的目标导师。为此知识人网小编推出该文,以飨读者。 当地时间2024年5月16日,英国皇家学会(The Royal Society&…

这台电脑无法运行Windows11问题解决方案

今天就记录一下我使用VMware安装Windows11遇到的问题:这台电脑无法运行Windows11的解决方案。 经过排查发现是VMware需要给虚拟机添加 可信平台模块 要注意直接添加 可信平台模块 是添加不上的,需要先给虚拟机加密 以下是给虚拟机加密的流程 1、点击虚…

第12周作业--HLS入门

目录 一、HLS入门 二、HLS入门程序编程 创建项目 1、点击Vivado HLS 中的Create New Project 2、设置项目名 3、加入文件 4、仿真 3、综合 一、HLS入门 1. HLS是什么?与VHDL/Verilog编程技术有什么关系? HLS(High-Level Synthesis&#xff0c…

微服务雪崩问题、Sentinel(请求限流、线程隔离、服务熔断)、Seata分布式事务

文章目录 前言一、微服务保护二、Sentinel2.1 微服务整合2.2 簇点链路2.3 请求限流2.4 线程隔离2.5 服务熔断 三、分布式事务3.1 Seata3.1.1 Seata架构3.1.2 部署TC服务3.1.3 微服务集成Seata 3.2 XA模式3.3 AT模式 前言 微服务之间为什么会雪崩?怎么解决雪崩问题&…

AIGC基础教学:AI+建筑设计,一场划时代变革的序幕已经拉开

2015年9月,美的集团本着把艺术融入民间的理念,邀请了安藤忠雄设计正在筹建中的美术馆。 在历经长达近120天的设计工作之后,美术馆于同年12月动工。这座具有岭南建筑文化意境的美术馆,后来荣获2020年美国建筑大师奖(Architecture …

JUnit5标记测试用例

使用场景: 通过Tag对用例分组: 环境分组:测试环境、预发布环境阶段分组:冒烟用例版本分组:V1.1、V1.2 Tag标记用例: 设置标签根据标签执行 结合Maven执行结合测试套件执行 设置标签: 通过T…

图书管理系统(Java版本)

文章目录 前言要求1.设置对象1.1.图书1.2.书架2.管理员3.功能的实现 2.搭建框架2.1.登录(login)2.2.菜单2.3.操作方法的获取 3.操作方法的实现3.1.退出系统(ExitOperation)3.2.显示图书(ShowOperation)3.3.查阅图书(FindOperation)3.4.新增图书(AddOperation)3.5.借出图书(Borr…

Day38 贪心算法part05

LC435无重叠区间(未掌握) 思路:先对数组进行排序,找到非重叠的区间的个数,然后区间的总数减去非重叠区间的个数即是需要移除的区间的个数与LC452用最少数量的箭引爆气球类似,但是不同的是[1,2]和[2,3]在此题并不是重叠区间但是在…

【pyspark速成专家】3_Spark之RDD编程1

目录 ​编辑 一,创建RDD 二,常用Action操作 三,常用Transformation操作 一,创建RDD 创建RDD主要有两种方式,一个是textFile加载本地或者集群文件系统中的数据, 第二个是用parallelize方法将Driver中的…