机器学习周报-文献阅读

文章目录

    • 摘要
    • Abstract
  • 1 相关知识
    • 1.1 WDN建模
    • 1.2 掩码操作(Masking Operation)
  • 2 论文内容
    • 2.1 WDN信息的数据处理
    • 2.2 使用所收集的数据构造模型
      • 2.2.1 Gated graph neural network
      • 2.2.2 Masking operation
      • 2.2.3 Training loss
      • 2.2.4 Evaluation metrics
    • 2.3 结果和讨论
      • 2.3.1 Masking operation对模型精度的影响
      • 2.3.2 节点级预测精度
      • 2.3.3 不同传感器放置策略对预测精度的影响
  • 3 相关代码
    • 总结

摘要

本周阅读了一篇在稀疏监测数据下基于图神经网络的给水管网水质实时预测论文,文章提出了一种新的门控图神经网络(GGNN)模型用于水分配网络(WDNs)的实时水质预测。该模型整合水力流向和水质数据,采用掩蔽操作提高预测精度。通过实际WDN评估,GGNN模型能在整个网络实现准确水质预测,基于水质的传感器放置可提高预测精度,此研究为WDN建模中用机器学习模型替代水力模型迈出第一步。同时,结合论文相关知识对掩码操作和GRU原理和代码进行补充学习。

Abstract

This week, I read a paper on real-time water quality prediction in water distribution networks (WDNs) based on graph neural networks under sparse monitoring data. The paper proposes a novel Gated Graph Neural Network (GGNN) model for real-time water quality prediction in WDNs. The model integrates hydraulic flow direction and water quality data and employs a masking operation to improve prediction accuracy. Through evaluation on a real WDN, the GGNN model can achieve accurate water quality prediction across the entire network. The placement of water quality sensors can enhance the prediction accuracy. This study takes the first step in replacing hydraulic models with machine learning models in WDN modeling. In addition, I supplemented my learning on masking operations and the principles and code of GRU based on the relevant knowledge in the paper.

1 相关知识

1.1 WDN建模

供水管网(Water Distribution Network)建模,供水管网是城市供水系统的重要组成部分,其建模的目的是通过数学和计算方法来模拟和分析管网中的水力行为,包括水流、压力分布、水质传输等。以下是WDN建模的一些关键内容:
水力模型: 模拟管网中的水流和压力分布。常用的工具有EPANET,它是一个广泛应用于水力模拟的软件,可以处理稳态和瞬态模拟
水质模型: 用于模拟水质在管网中的传输和变化。近年来,机器学习方法也被引入到水质预测中
拓扑结构: 通过图论方法表示管网的连接关系,包括节点(如水库、储罐、用户节点)和边(如管道、阀门、泵站)

1.2 掩码操作(Masking Operation)

掩码操作(Masking Operation)是一种在机器学习和深度学习中常用的技术,主要用于在训练过程中隐藏或过滤部分输入数据,以增强模型的泛化能力和鲁棒性。其基本思想是在训练过程中随机隐藏部分输入数据,让模型通过上下文信息来预测被隐藏的部分。这种技术可以防止模型过度依赖有限的输入数据,从而提升模型的泛化能力

在机器学习中,掩码操作常用于处理稀疏数据或模拟数据缺失的情况。例如,在图神经网络(GNN)中,掩码操作可以隐藏部分节点的输入数据,让模型学习如何利用已知节点的信息来预测未知节点的状态。

在供水管网(WDN)建模中,掩码操作被用于增强模型对未监测节点的预测能力。具体方法是:在训练过程中,随机选择一定比例的传感器节点,并将其输入替换为零,从而模拟未监测节点的情况。 这种方法不仅提高了模型的泛化能力,还防止了过拟合

在实际应用中,掩码操作可以通过以下步骤实现:

  1. 选择掩码比例: 根据任务需求,随机选择一定比例的输入数据进行掩码。
  2. 应用掩码: 将选定的数据替换为零或其他占位符
  3. 训练模型: 在掩码数据上训练模型,让模型学习如何利用上下文信息进行预测

掩码操作是一种强大的技术,能够显著提升模型在处理稀疏数据和复杂任务时的性能。它在图神经网络、自然语言处理和供水管网建模中的应用展示了其广泛的应用前景

2 论文内容

论文题目:Real-time water quality prediction in water distribution networks using graph neural networks with sparse monitoring data
期刊:Water Research
中科院分区:环境科学与生态学1区

现有问题:

  1. 现有的基于水力模型的系统状态预测方法在有限的传感器数据和密集的计算要求下面临模型校准的挑战
  2. 当前的机器学习模型缺乏预测未被监测或未被包括在模型训练中的站点处的系统状态的能力

创新点:论文提出了一种新的门控图神经网络(GGNN)模型,用于WDN中的实时水质预测。
GGNN模型集成了水流方向和水质数据来表示拓扑结构和系统动力学,并采用掩蔽操作进行训练以提高预测精度。

2.1 WDN信息的数据处理

GGNN模型需要两种类型的数据:WDN拓扑和传感器监测站的历史水质监测数据。

在这里插入图片描述

假设WDN包括n个节点和m个管道,在 N s N_s Ns个传感器站处监测水质。网络拓扑由图G =(V,E)表示,其中V表示包括水库、罐和接头的节点集,并且E表示包括管道、阀门和泵的边集。网络的流向信息和空间拓扑细节通常可以从EPANET等水力模型中获得。利用这些数据构造有向图的邻接矩阵 A ∈ R n × n A\in R^{n×n} ARn×n,其中每个元素 A i j A_{ij} Aij表示水是否从节点 i i i 流向节点 j j j A i j A_{ij} Aij= 1)或不流向节点j( A i j A_{ij} Aij= 0)

其中,数据采集过程包括在指定的时间窗口(表示为 T c T_c Tc)内捕获水质测量值,该时间窗口表示过去收集的历史数据的持续时间。然后将收集的数据用作数据集中被监控节点的节点属性,对于未监控节点,可以将空值替换为0,从而得到节点属性 X ∈ R n × N c X\in R^{n×N_c} XRn×Nc。其中 N c N_c Nc表示在数据收集周期 T c T_c Tc期间获得的水质测量值的数量,其对应于指定时间窗口内的时间步长的数量。它可以作为预测下一个时间步的水质所需的数据大小的指标。

2.2 使用所收集的数据构造模型

2.2.1 Gated graph neural network

在这里插入图片描述
图中:n表示图大小, N c N_c Nc表示节点属性大小, M M M表示隐藏状态大小

第一步: 扩展邻接矩阵 A ∈ R n × n A\in R^{n×n} ARn×n 来准备输入,在有向图中包含双向信息流。通过将A与其转置连接,从而形成扩展邻接矩阵 A ^ = [ A , A T ] \hat{A} = [A,A^T] A^=[A,AT]。同时考虑入边和出边, A ^ ∈ R n × 2 n \hat{A} \in R^{n×2n} A^Rn×2n捕捉节点间的复杂关系和消息传播方向,从而增强了GGNN的双向学习能力。
第二步: 节点 v x v v x_v vxv的节点属性经由具有整流线性单元(ReLU)激活函数的标准线性组合被映射到从原始空间 R N c R^{N_c} RNc到新空间 R M R^M RM的原始隐藏状态 h v ( 0 ) h_v^{(0)} hv(0)。这个映射过程有效地扩大了节点属性的大小,允许GGNN捕获节点属性之间潜在的重要非线性关系。由M表示的隐藏状态的大小是确定模型容量的超参数。

第三步: GGNN将扩展邻接矩阵 A ^ = [ A , A T ] \hat{A} = [A,A^T] A^=[A,AT]和映射的节点属性 h ( 0 ) h^{(0)} h(0)作为输入,在固定的K步上递归计算节点状态,以产生最终的状态矩阵 h ( K ) ∈ R n × M h_{(K)}\in R^{n×M} h(K)Rn×M。GGNN中的节点状态更新过程包括两个基本步骤:聚合和传播
在聚合期间,使用扩展邻接矩阵 A ^ \hat A A^来计算聚合向量 a v a_v av,聚合向量 a v a_v av表示节点v的其相邻节点的状态的聚合。使用以下等式来计算聚合向量:

在这里插入图片描述

其中其中上标k表示时间步长, A v ∈ R n × 2 A_v\in R^{n×2} AvRn×2 是块A中对应于节点v的两列,b表示偏置向量。

在聚合步骤之后,传播步骤采用门控递归单元(GRU)机制来更新节点状态。 GRU传播方程可以描述如下:
在这里插入图片描述

其中,r和z是重置门和更新门 W r W_r Wr W z W_z Wz W W W and U r U_r Ur U z U_z Uz U U U是每层的权重和偏置; σ ( ⋅ ) \sigma(·) σ()是sigmoid激活函数; 是逐元素乘法。

GGNN中的聚合和传播步骤允许模型迭代更新和细化节点状态,合并来自节点先前表示及其相邻节点的信息。这个迭代过程捕获图结构中的动态和交互,使GGNN能够学习和表示节点之间的复杂关系和依赖关系。传播步数K决定了GGNN中信息传播的深度。当K = 1时,每个节点只能从其直接相邻节点学习。随着K的增加,GGNN可以从K步之外的节点捕获信息,包括它们的间接连接。K的选择影响模型的学习能力和效率。较高的K值会导致训练速度较慢,内存需求增加,而较低的K值会限制每个节点可以学习的依赖关系数量。因此,K的选择应该在模型性能和计算效率之间取得平衡。

在使用GRU模块更新节点状态之后,使用线性层将更新的状态 h ( K ) h^{(K)} h(K)转换为表示每个节点的预测状态的 Y ^ ∈ R n \hat Y \in R^n Y^Rn。在这项研究中,节点属性是历史水质浓度数据,其预测状态代表模型对每个节点下一个时间步的水质浓度的预测。这种转换允许模型基于其更新的表示和从邻近的相邻节点传播的信息来生成每个节点处的水质预测。

2.2.2 Masking operation

使用的两个主要目的:

1 它在训练过程中模拟来自非传感器节点的数据的不可用性,使模型能够泛化到观察到的传感器数据之外,并学习预测未监测节点的值
2 它作为一种正则化技术,防止模型仅仅依赖于有限的传感器输入。通过鼓励模型捕捉传感器节点和未监测节点之间的关系,它促进了更好的泛化,并降低了过拟合的可能性。

需要研究屏蔽节点的比例,因为它平衡了模型性能和过拟合。更高的利率减少了可用的信息,增加了适应不足的风险。较低的速率提供更多的信息,但可能导致过拟合。仔细的考虑对于选择最佳的泛化掩蔽率和避免过拟合是至关重要的。

2.2.3 Training loss

作者使用平均绝对误差(MAE)作为训练损失函数。它测量传感器节点的预测和真实水质值之间的平均绝对差。训练损失(L)计算如下:
在这里插入图片描述

其中, N s N_s Ns是传感器节点的数量, T t r a i n T_{train} Ttrain是训练数据集中的时间步长的总数。 y ^ i t \hat{y}_i^t y^it y i t y_i^t yit是在时间步 t t t处具体针对传感器节点 i i i的预测的和真实的水质值。

2.2.4 Evaluation metrics

在应用阶段,不需要Masking operation,因为模型直接预测水质值。经过训练的GGNN模型用于预测整个WDN中所有节点的水质。具体而言,它利用在 T c T_c Tc的时间段内收集的历史水质数据来预测下一个时间步长的水质。使用两个广泛使用的指标来评估GGNN模型的性能:MAE和平均绝对百分比误差(MAPE)。

在这里插入图片描述

其中,N是WDN中的节点数量, T t e s t T_{test} Ttest是测试数据集中的时间步的总数, y ^ i t \hat{y}_i^t y^it y i t y_i^t yit是节点 i i i在时间步 t t t处的预测和真实水质值。

2.3 结果和讨论

2.3.1 Masking operation对模型精度的影响

作者对各种不同掩蔽操作对GGNN模型预测精度的影响做出对比。进行了10次实验运行,包括未掩蔽训练和掩蔽比范围为0.1 - 0.9的训练。在不同的训练时期,将整个网络中所有954个节点(包括2个水源和952个需求节点)的MAE用作评估度量。下图显示了在不同掩蔽条件和训练时期下模型的MAE结果。结果表明,所有掩蔽比的性能始终优于未掩蔽模型,表明掩蔽操作在提高预测精度方面的有效性。
在这里插入图片描述
将水质数据集分为五个子集,每个子集用作测试集一次,而其余子集用于训练。计算各掩码条件下的MAE,得到各掩码比的5组MAE值。如图显示了30个训练epoch后不同掩码条件下的MAE结果的箱形图,提供了对每个掩码比下模型准确度的分布和变异性的了解。研究结果表明,过小或过大的掩蔽比导致次优的模型性能。当掩蔽比设置为0.5时,该模型达到了最高的准确度,这表明适度的掩蔽比在捕获相关信息和减轻过拟合之间取得了平衡。实验结果突出了采用适当的掩蔽比在增强水质预测使用GGNN模型的有效性。这些发现强调了该模型在WDNs建模中作为一种有价值的水质预测工具的潜力。

在这里插入图片描述

2.3.2 节点级预测精度

尽管传感器数据的可用性有限,但该模型仍能够对相当多的节点实现高预测精度;如图为测试实验中各个节点的氯预测误差(std代表MAE的标准差)。模型在大多数节点上表现出良好的预测能力,约三分之二的节点MAPE低于10%。尽管传感器数据有限,模型仍能准确预测大部分节点的水质。此外,模型的预测准确性与节点到传感器的距离无关,表明模型能够有效利用网络拓扑信息进行预测。

在这里插入图片描述

如图为:距离最近传感器不同距离的节点的MAE的分布。红色叉号详细说明了落在给定邻近级别内的节点数量。该模型的预测精度不会根据节点和传感器之间的距离而显著变化。这表明该模型能够从相邻节点捕获相关信息,即使它们相对较远。

在这里插入图片描述

2.3.3 不同传感器放置策略对预测精度的影响

研究比较了基于介数中心性(Betweenness Centrality,基于拓扑信息)和方差分析(ANOVA,整合水质数据)的传感器布局策略。结果表明,基于水质信息的ANOVA方法在预测准确性上优于仅基于拓扑信息的介数中心性方法。此外,传感器数量的增加并不总是能提高预测准确性,而是需要合理布局。

在这里插入图片描述

表1中的结果表明了ANOVA策略在预测准确性方面的优越性,强调了在传感器放置中纳入水质信息的重要性。传感器数量和精度之间的关系遵循非线性趋势。随着传感器从20个增加到30个,方差分析策略最初会提高准确性。进一步的增量会产生递减的回报,甚至在精度上略有下降,这表明最佳的传感器数量对应最大化的预测精度。方差分析策略始终优于介数中心性策略,突出了在传感器放置决策中整合水质数据的价值。考虑水质信息的传感器部署提高了WDNs的预测精度。这些发现有助于有效的传感器放置策略,提升网络的监测和管理。

同时发现随着传感器数量的增加(>30),该指数呈下降趋势。此外,与使用30个传感器相比,使用60个传感器导致较低的预测精度。这表明,由聚类驱动的传感器放置策略的有效性并不一定与传感器的数量呈线性关系。一旦通过特定数量的传感器实现了最佳放置策略,进一步的增量可能不会显着提高模型的性能。即传感器的位置对预测精度的影响比部署的传感器的数量更大。

3 相关代码

手写逐行实现GRU网络

import torch
import torch.nn as nn#逐行实现GRU网络
def gru_forward(input,initial_states,w_ih,w_hh,b_ih,b_hh):prev_h= initial_statesbs,T,i_size=input.shapeh_size=w_ih.shape[0]//3#对权重扩维,复制成batch_size倍batch_w_ih=w_ih.unsqueeze(0).tile(bs,1,1)batch_w_hh=w_hh.unsqueeze(0).tile(bs,1,1)output=torch.zeros(bs,T,h_size)#GRU网络的输出状态序列for t in range(T):x=input[:,t,:]#t时刻GRU ce1l的输入特征向量,[bs,i_size]w_times_x=torch.bmm(batch_w_ih,x.unsqueeze(-1))#[bs,3*h_size,1]w_times_x=w_times_x.squeeze(-1)#[bs,3*h size]w_times_h_prev=torch.bmm(batch_w_hh,prev_h.unsqueeze(-1))#[bs,3*h_size,1]w_times_h_prev=w_times_h_prev.squeeze(-1)   #[bs,3*h_size]r_t=torch.sigmoid(w_times_x[:,:h_size]+w_times_h_prev[:,:h_size]+b_ih[:h_size]+b_hh[:h_size]) #重置门z_t=torch.sigmoid(w_times_x[:,h_size:2*h_size]+w_times_h_prev[:,h_size:2*h_size]+b_ih[h_size:2*h_size]+b_hh[h_size:2*h_size])#更新门n_t=torch.tanh(w_times_x[:,2*h_size:3*h_size]+b_ih[2*h_size:3*h_size]+r_t*(w_times_h_prev[:,2*h_size:3*h_size]+b_hh[2*h_size:3*h_size]))#候选状态prev_h=(1-z_t)*n_t+z_t*prev_h #增量更新得到当前时刻最新隐含状态output[:,t,:]=prev_hreturn output,prev_h#测试函数的正确性
bs,T,i_size,h_size=2,3,4,5
input=torch.randn(bs,T,i_size)#输入序列
h0=torch.randn(bs,h_size)#初始值,不需要训练#调用PyTorch官方GRU API
gru_layer =nn.GRU(i_size,h_size,batch_first=True)
output,h_final=gru_layer(input,h0.unsqueeze(0))
#print(output)
for k,v in gru_layer.named_parameters():print(k,v.shape)
#调用自定义的gru forward函数
output_custom, h_final_custom=gru_forward(input,h0,gru_layer.weight_ih_l0,gru_layer.weight_hh_l0,gru_layer.bias_ih_l0,gru_layer.bias_hh_l0)
print(torch.allclose(output,output_custom))
print(torch.allclose(h_final,h_final_custom))

掩码操作(Masking Operation)代码:
在训练过程中随机掩码(隐藏)部分输入数据,只在训练模式下应用掩码操作,部分输入数据会被随机掩码为0在评估模式下,输入数据保持不变(保留原始输入)

import torch
import torch.nn as nnclass MaskingOperation(nn.Module):"""掩码操作模块,用于在训练过程中随机掩码部分输入数据。"""def __init__(self, mask_ratio=0.5):"""初始化掩码操作模块。:param mask_ratio: 掩码比例,表示需要掩码的数据比例(0到1之间)。"""super(MaskingOperation, self).__init__()self.mask_ratio = mask_ratiodef forward(self, x):"""前向传播函数,随机掩码输入数据的一部分。:param x: 输入张量,形状为 (batch_size, num_nodes, features)。:return: 掩码后的输入张量。"""if self.training:  # 只在训练模式下应用掩码操作batch_size, num_nodes, _ = x.size()# 随机生成掩码矩阵,形状与输入数据一致mask = torch.rand(batch_size, num_nodes, 1, device=x.device) < self.mask_ratio# 将掩码位置的值替换为0x_masked = torch.where(mask, torch.zeros_like(x), x)return x_maskedelse:# 在评估模式下直接返回原始输入return x# 示例:使用掩码操作模块
if __name__ == "__main__":# 设置随机种子以保证结果可复现torch.manual_seed(42)# 创建掩码操作模块,掩码比例为0.5masking_op = MaskingOperation(mask_ratio=0.5)# 创建一个示例输入张量,形状为 (batch_size=2, num_nodes=4, features=3)example_input = torch.tensor([[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0], [10.0, 11.0, 12.0]],[[13.0, 14.0, 15.0], [16.0, 17.0, 18.0], [19.0, 20.0, 21.0], [22.0, 23.0, 24.0]]], dtype=torch.float32)print("原始输入数据:")print(example_input)# 将掩码操作模块设置为训练模式masking_op.train()masked_input = masking_op(example_input)print("\n训练模式下掩码后的输入数据:")print(masked_input)# 将掩码操作模块设置为评估模式masking_op.eval()masked_input_eval = masking_op(example_input)print("\n评估模式下掩码后的输入数据:")print(masked_input_eval)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结

文章为WDN水质预测提供新的机器学习方法,解决传感器数据有限和网络复杂的挑战。阅读本篇论文,同时,我对图神经网络在水分配网络中的应用有了深入的了解,并掌握了掩码操作和GRU的基本原理和应用方法。

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

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

相关文章

Doris Schema Change 常见问题分析

1. 什么是 Schema Change Schema Change 是在数据库中修改表结构的一种操作&#xff0c;例如添加列、删除列、更改列类型等。 ⚠️Schema Change 限制⚠️ 一张表在同一时间只能有一个 Schema Change 作业在运行。分区列和分桶列不能修改。如果聚合表中有 REPLACE 方式聚合的…

我的2024年年度总结

序言 在前不久&#xff08;应该是上周&#xff09;的博客之星入围赛中铩羽而归了。虽然心中颇为不甘&#xff0c;觉得这一年兢兢业业&#xff0c;每天都在发文章&#xff0c;不应该是这样的结果&#xff08;连前300名都进不了&#xff09;。但人不能总抱怨&#xff0c;总要向前…

C++ DLL注入原理以及示例

0、 前言 0.1 什么是DLL注入 DLL&#xff08;动态链接库&#xff09;注入是一种技术&#xff0c;通过将外部的 DLL 文件强行加载到目标进程的地址空间中&#xff0c;使得外部代码可以执行。这种技术常用于修改或扩展应用程序的行为&#xff0c;甚至用于恶意攻击。 0.2 DLL注入…

MATLAB绘图:随机彩色圆点图

这段代码在MATLAB中生成并绘制了500个随机位置和颜色的散点图。通过随机生成的x和y坐标以及颜色&#xff0c;用户可以直观地观察到随机点的分布。这种可视化方式在数据分析、统计学和随机过程的演示中具有广泛的应用。 文章目录 运行结果代码代码讲解 运行结果 代码 clc; clea…

关于使用PHP时WordPress排错——“这意味着您在wp-config.php文件中指定的用户名和密码信息不正确”的解决办法

本来是看到一位好友的自己建站&#xff0c;所以突发奇想&#xff0c;在本地装个WordPress玩玩吧&#xff0c;就尝试着装了一下&#xff0c;因为之前电脑上就有MySQL&#xff0c;所以在自己使用PHP建立MySQL时报错了。 最开始是我的php启动mysql时有问题&#xff0c;也就是启动过…

RabbitMQ 架构分析

文章目录 前言一、RabbitMQ架构分析1、Broker2、Vhost3、Producer4、Messages5、Connections6、Channel7、Exchange7、Queue8、Consumer 二、消息路由机制1、Direct Exchange2、Topic Exchange3、Fanout Exchange4、Headers Exchange5、notice5.1、备用交换机&#xff08;Alter…

【Uniapp-Vue3】setTabBar设置TabBar和下拉刷新API

一、setTabBar设置 uni.setTabBarItem({ index:"需要修改第几个", text:"修改后的文字内容" }) 二、tabBar的隐藏和显式 // 隐藏tabBar uni.hideTabBar(); // 显示tabBar uni.showTabBar(); 三、为tabBar右上角添加文本 uni.setTabBarBadge({ index:"…

routeros7 adguardhome添加规则报错certificate expired

mikrokit routeros 7添加adguardhome容器。 /container/add remote-imageadguard/adguardhome:latest interfaceveth1 root-dircontainer/adgurdhome loggingyes结果发现添加不了规则&#xff0c;报证书过期。 Error: control/filtering/add_url | Couldn’t fetch filter fro…

壁纸设计过程中如何增加氛围感

在壁纸设计过程中&#xff0c;增加氛围感是提升整体视觉效果和情感传达的关键。以下是一些具体的方法和技巧&#xff0c;帮助你在设计中营造出强烈的氛围感&#xff1a; 一、色彩运用 选择主题色&#xff1a; 根据你想要传达的情感选择主色调。例如&#xff0c;温暖的色调&…

RabbitMQ模块新增消息转换器

文章目录 1.目录结构2.代码1.pom.xml 排除logging2.RabbitMQConfig.java3.RabbitMQAutoConfiguration.java 1.目录结构 2.代码 1.pom.xml 排除logging <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/PO…

2024年度总结:技术探索与个人成长的交织

文章目录 前言年度创作回顾&#xff1a;技术深耕与分享数据库技术&#xff1a;MySQL 与 MyBatisJava 及相关技术栈计算机网络&#xff1a;构建网络知识体系思维方式的转变&#xff1a;构建技术知识体系的桥梁 项目实践&#xff1a;人工智能与智慧医疗的碰撞生活与博客的融合与平…

python:taichi 模拟一维波场

在 Taichi 中模拟一维波场&#xff0c;通常是利用 Taichi 编程语言的特性来对一维空间中的波动现象进行数值模拟&#xff0c;以下是相关介绍&#xff1a; 原理基础 波动方程&#xff1a;一维波动方程的一般形式为 &#xff0c;其中 u(x,t) 表示在位置x 和时间t 处的波的状态&…

基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真。选择回归法进行最大功率点的追踪&#xff0c;使用光强和温度作为影响因素&#xff0c;电压作为输出进行建模。…

深入MapReduce——引入

引入 前面我们已经深入了HDFS的设计与实现&#xff0c;对于分布式系统也有了不错的理解。 但HDFS仅仅解决了海量数据存储和读写的问题。要想让数据产生价值&#xff0c;一定是需要从数据中挖掘出价值才行&#xff0c;这就需要我们拥有海量数据的计算处理能力。 下面我们还是…

Vue 引入及简单示例

Vue 渐进式JavaScript 框架 学习笔记 - Vue 引入及简单示例 目录 与jquery区别 Vue引入 两种方式引入 下载到本地 代码结构 简单示例 Style中引入vue.js 对vue语法进行解析 对三目运算符支持 设置变量&#xff08;状态&#xff09; 总结 与jquery区别 不需要手动操…

系统思考—问题分析

很多中小企业都在面对转型的难题&#xff1a;市场变化快&#xff0c;资源有限&#xff0c;团队协作不畅……这些问题似乎总是困扰着我们。就像最近和一位企业主交流时&#xff0c;他提到&#xff1a;“我们团队每天都很忙&#xff0c;但效率始终没见提升&#xff0c;感觉像是在…

π0:仅有3B数据模型打通Franka等7种机器人形态适配,实现0样本的完全由模型自主控制方法

Chelsea Finn引领的Physical Intelligence公司&#xff0c;专注于打造先进的机器人大模型&#xff0c;近日迎来了一个令人振奋的里程碑。在短短不到一年的时间内&#xff0c;该公司成功推出了他们的首个演示版本。这一成就不仅展示了团队的卓越技术实力&#xff0c;也预示着机器…

第二十一周:Mask R-CNN

Mask R-CNN 摘要Abstract文章信息研究动机Mask RCNNRoIPool与RoIAlign 双线性插值Mask Branch(FCN)其他细节Mask RCNN损失Mask分支预测 网络搭建创新点与不足总结 摘要 本篇博客介绍了Mask R-CNN&#xff0c;这是一种用于实例分割的模型&#xff0c;能够在目标检测的基础上实现…

Windows本地部署(DeepSeek-R1-Distill-Qwen-1.5B)模型

文章目录 Windows本地部署&#xff08;DeepSeek-R1-Distill-Qwen-1.5B&#xff09;模型本机环境运行环境安装安装 WSL2&#xff0c;启用linux 系统进入linux 系统后&#xff0c;安装以下软件安装 Anaconda3安装 CUDA安装 pip创建虚拟环境并安装 vllm 模型下载模型运行部署模型测…

Java 大视界 -- Java 大数据在元宇宙中的关键技术与应用场景(65)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…