机器学习周记(第三十三周:文献阅读[GWO-GART])2024.4.1~2024.4.7

目录

摘要

ABSTRACT

1 论文信息

1.1 论文标题

1.2 论文摘要 

1.3 论文数据集

1.4 论文模型

2 相关知识


摘要

  本周阅读了一篇使用GAT结合GRU预测PM2.5浓度的文章。论文模型为图注意力循环网络(GART),首次提出了一种新型的多层GAT架构,可以循环地提取城市的空间特征,并获取城市之间更多的隐含关联。其次,利用灰狼优化(GWO)来选择模型的最佳超参数集。这种自动化方法有助于优化GART的网络结构。

ABSTRACT

This week, We read a paper on predicting PM2.5 concentration using Graph Attention Network (GAT) combined with Gated Recurrent Unit (GRU). The model proposed in the paper is called Graph Attention Recurrent Network (GART), which introduces a novel multi-layer GAT architecture for cyclic extraction of spatial features of cities, thereby capturing more implicit associations between cities. Furthermore, Grey Wolf Optimization (GWO) is employed to select the optimal set of hyperparameters for the model. This automated approach aids in optimizing the network structure of GART.

1 论文信息

1.1 论文标题

A long-term prediction method for PM2.5 concentration based on spatiotemporal graph attention recurrent neural network and grey wolf optimization algorithm

1.2 论文摘要 

  随着全球工业化和城市化的迅速发展,空气污染问题变得日益严重,主要以PM2.5作为主要污染成分,直接影响了人们的健康。因此,对长期PM2.5水平进行预测是非常有必要的。然而,大多数现有的PM2.5浓度预测方法缺乏足够的提取城市空间特征的能力。因此,本文提出了一种基于时空图注意力循环神经网络灰狼优化(GWO-GART)的新方法。首先,通过使用图注意力网络(GAT)图神经网络(GNN)门控循环单元(GRU)构建了一个PM2.5的长期预测模型,称为图注意力循环网络(GART)。在GART模型中,首次提出了一种新型的多层GAT架构,可以循环地提取城市的空间特征,并获取城市之间更多的隐含关联。其次,利用灰狼优化(GWO)来选择模型的最佳超参数集。这种自动化方法有助于设计GART的网络结构。最后利用从现实世界收集的数据集将GWO-GART与三种单一模型和两种混合模型进行了比较。结果显示,与最先进的模型(SOTA)相比,GWO-GART在所有数据集上的均方根误差(RMSE)平均减少了2.13%,平均绝对误差(MAE)减少了2.47%,临界成功指数(CSI)平均增加了1.55%。这表明,GWO-GART提供了一种切实有效的方法,可以准确预测城市地区的长期PM2.5水平。

1.3 论文数据集

  本文选取中国184个城市区域进行PM2.5浓度预测研究,如Fig.1所示。大气污染受环境因素和地理因素的影响,包括空气湿度、地表温度、降水、大气压等。而且,特定位置的空气污染水平不仅受到当地排放的影响,还受到邻近地区污染的影响。以京津冀地区为例,北京PM2.5浓度受到天津、廊坊等多个地区工业排放的影响。因此,工厂排放的空气污染物的扩散往往受到地理因素的影响,如地点之间的距离、海拔差异、高山、强气流和风向等。为了充分考虑这些因素对PM2.5浓度沉降和扩散的影响,将每个城市节点的属性值由8个气象和环境数据组成,包括:海拔高度、k指数、经度风分量U、纬度风分量V、相对湿度、2m处地面温度、大气压和总降水量。具体数据统计如Table1所示。

Fig.1 研究区域的地理分布图
Table1 

  每个城市的PM2.5浓度数据来自生态环境部(MEE),而气象和环境指标则来自ERA5大气再分析数据集。这些指标通过热力学效应与PM2.5的垂直扩散动态相关。连接相邻城市节点的边的属性包括以下6个因素:两个城市节点之间的距离(d);起始城市节点风速(v);从起始城市到目标城市的方向(\gamma);起始城市节点风向(\beta);水平扩散系数(S);注意力系数(Y)。这些因素与PM2.5的水平扩散有关。水平扩散系数S的计算公式如Eq.(1)所示。

S=ReLU(\frac{\left | v \right |}{d} \cos (\left | \gamma -\beta \right |))                                                                                                   (1)

1.4 论文模型

  论文模型(GWO-GART),如Fig.2所示,主要由两部分组成:(1).GART预测模型,主要由多层GAT多层GNN以及一个GRU层组成。在GART中,空间特征通过多层GAT提取,而气象环境特征通过多层GNN提取。接着,将被提取的多个特征通过特征融合连接起来,GRU层进一步捕获数据的时间特征。(2).灰狼优化算法(GWO),用于优化GART的网络结构。 

Fig.1 GWO-GART总体架构
Fig.2 GWO-GART总体架构

  利用数据集提供的184个城市的空气质量数据、地理环境数据和经纬度信息,构建了城市的图结构和邻接矩阵。PM2.5等空气污染物的水平迁移随着两地距离的增加而减少。同样,在两个地点之间存在大量高海拔山脉也会影响空气污染物的水平迁移。因此,基于这两个视角构建邻接矩阵。通过查询城市的经纬度信息,如果两个节点之间的欧氏距离大于300公里,或者节点之间有3座及以上海拔超过1200米的山脉,则认为节点之间没有边。邻接矩阵的具体约束如Eq.(2)Eq.(3)Eq.(4)所示。

d_{ij}=\left \| \alpha _{i}-\alpha _{j} \right \|                                                                                                                         (2)

m_{ij}=sup\left \{ h(\lambda \alpha _{i} + (1-\lambda )\alpha _{j}) - \max \left \{ h(\alpha _{i}),h(\alpha _{j}) \right \} \right \},\lambda \in (0,1)                            (3)

A_{ij}=H(d_{T}-d_{ij}) \cdot H(m_{T}-m_{ij})                                                                                       (4)

节点的地理坐标用\alpha表示,高度用h(\alpha )表示。m_{ij}表示节点i和节点j之间的山脉中的最大高度差。符号\left \| \cdot \right \|表示向量的L2范数,d_{ij}表示两个节点之间的欧氏距离。d_{T}为距离阈值(300km),m_{T}为高度阈值(1200m)。H(\cdot)是赫维赛德函数,只有当x>0时,其值为1,否则为0。

  构建邻接矩阵后,两个节点之间具有非零值的节点称为邻接节点,共有3938组,这意味着整个城市图有3938条边。分别计算这些边对应的属性,形成城市信息,用于后续的水平扩散系数S注意力系数Y的计算。

  GART模型将组织好的城市信息气象环境知识作为多层GNN的输入,充分提取气象环境数据的特征。其目标是输出融合气象和环境知识特征的融合数据。另外,基于邻接矩阵和节点特征,GART将其输入到多层GAT中提取PM2.5的空间特征。它的输出融合了空间特征的数据。然后,模型对上述两类数据进行特征融合。融合后的数据通过GRU层来反映PM2.5在时间序列上的沉积和消散,从而提取时间维度上的长期特征。为了紧密融合不同特征信息,采用全连接层将数据降维为一维。这代表了PM2.5的最终预测值。GWO通过参数组合对GART预测模型进行进一步优化,得到GWO-GART预测模型。GWO改善了多个模型之间的兼容性,增强了模型的预测精度。

  GART模型采用多层GNNMLP层融合气象和环境知识,如Fig.3所示。在Fig.3中,当预测时间tPM2.5浓度时,输入包括气象数据O^{t}、节点的城市信息G^{t},以及上一个时间步的历史PM2.5数据P^{t-1}。经过多层GNN的处理后,得到了一个包含气象和环境特征的融合向量X^{t}作为输出。接下来,X^{t}被用作后续步骤中下一个GNN层的输入。通过所有GNN层融合气象和环境知识后,采用两个MLP层。第一个MLP层将输入特征向量X^{t+n}的维度从低维度增加到高维度,而第二个MLP层将这个高维向量的维度降低。这使得不同特征向量之间的信息融合,并且使模型能够获得更全面的表达能力。最终输出X^{out}代表了气象和环境知识的融合。

Fig.3 多层GNN

计算公式如下:

X^{t}=\textup{GNN}(O^{t},P^{t-1},G^{t})                                                                                                            

X^{t+1}=\textup{GNN}(O^{t+1},P^{t},G^{t+1},X^{t})                                                                                        

...

X^{t+n}=\textup{GNN}(O^{t+n},P^{t+n-1},G^{t+n},X^{t+n-1})                                                                     

X^{out}=\textup{MLP}_{2}(\textup{MLP}_{1}(X^{t+n}))                                                                                                (5)

气象数据O^{t}包括12个特征,其中包括城市节点在时间t的8个气象和环境特征,两个时间特征,以及风速特征和风向特征。城市信息G^{t}包括在时间t的3938条边的属性信息以及基于边属性计算的水平扩散系数S

  在PM2.5的长期预测中,空间特征的提取至关重要,它反映了城市节点之间的邻接关系,并包含了城市图的空间特征。本文提出了一种多层GAT循环网络,如Fig.4所示。它不仅考虑了每一层的当前输入,还考虑了前一层GAT输出的影响。通过多层GAT完全提取邻接矩阵中隐含的空间信息,也是该模型功能的关键组成部分之一。多层图注意力(Multi-GAT)Fig.4所示。在时间tGAT 将节点特征F^{t}和邻接矩阵A作为输入。GAT的输出是注意力系数Y^{t}F^{t}包括八个气象和环境特征,这些节点特征随时间变化。A是一个184×184维的矩阵,涵盖了所有城市节点之间的空间关系。多层图注意力循环网络通过为每条边计算注意力系数来量化空间关系的强度。

Fig.4 多层GAT

具体计算过程如Eq.(6)所示:

Y^{t}_{ij}=\frac{\textup{ln}(LeakyReLU(a\left [ WF^{t}_{i} \left | \right | WF^{t}_{j} \right ]))}{\sum_{j\in N_{i}}^{}\textup{ln}(LeakyReLU(a\left [ WF^{t}_{i} \left | \right | WF^{t}_{k} \right ]))}                                                                                   (6)

其中,N_{i}代表节点i的所有邻居节点,jN_{i}中的一个节点;F^{t}表示时间t的节点特征;W是用于不同节点的共享参数矩阵;W\cdot F^{t}是两个向量的内积运算;\cdot ||\cdot表示在增加节点维度后的连接操作;a(\cdot)是用于减小连接后高维向量维度的单层前馈神经网络;Wa(\cdot)都是方程中的可学习参数。注意力系数Y经过归一化处理,如Eq.(7)所示,其中使用LeakyReLU激活函数以保留节点自身的特征信息,并防止在计算过程中被丢弃。然后,Y^{t}作为下一层GAT的输入,参与后续的计算。

具体计算过程如Eq.(7)所示:

Y^{t}=\textup{GAT}(F^{t},A)

Y^{t+1}=\textup{GAT}(F^{t+1},A,Y^{t})

...

Y^{t+n}=\textup{GAT}(F^{t+n},A,Y^{t+n-1})                                                                                             (7)

Eq.(7)可以观察到,空间依赖关系随着时间变化,因为多层GAT在计算下一个时间步的注意力系数时考虑了上一个时间步的注意力系数。而且数据是每隔3小时收集一次的,包括风速、温度、湿度和降水等特征,所有这些特征都可能发生波动,进而影响PM2.5的扩散。这些特征变化也受到上一个时间步的影响,这就是本文采用循环方法更有效地提取空间依赖关系的原因。模型将传统的图注意力网络转换为类似于RNN的循环结构,目的是适应这些特征的变化。

在计算完注意力系数后,通过聚合所有邻居节点的信息来更新节点自身的特征F{}',如Eq.(8)所示。

F{}'_{i}=\sigma (\sum_{j\in N_{i}}^{}Y^{t}_{j}WF^{t}_{i})                                                                                                           (8)

其中,N_{i}是与中心城市i相邻的城市集合,而j是其中的任意一个相邻城市。Y^{t}_{j}表示时间t时城市ij之间的注意力系数。W是共享参数矩阵,而F^{t}_{i}表示时间t时城市i的节点特征。Eq.(8)表示将城市之间的注意力系数视为权重系数,反映了相邻城市对PM2.5扩散的贡献。注意力系数越大,权重越高。根据不同的权重,所有的局部特征被聚合以更新i的特征信息F{}'_{i},从而影响PM2.5的预测。

在每个GAT层中,都采用了多头注意力机制,如Fig.4中的绿色区域所示。通过多头注意力机制,模型可以使用不同的可学习参数集合集中于问题的不同方面。每个彩色箭头代表一组注意力参数,对应于Fig.4中的三头注意力机制。然后,来自多个头的注意力结果被聚合以更新节点特征。

引入了多头注意力机制后,节点信息的更新根据Eq.(9)进行。

F{}'_{i}=\sigma (\frac{1}{K}\sum_{k=1}^{K}\sum_{j\in N_{i}}^{}Y^{t}_{j}W^{k}F^{t}_{j})                                                                                         (9)

其中,K表示注意力头的数量,每个头专注于不同的方面,可以使用Wa(\cdot)进行调整。在为每个头计算完注意力系数后,每个头专注于不同的方面,形成一个新的特征向量F{}',其中包含来自相邻节点的信息。

  PM2.5浓度表现出显著的时间变化。随着时间步长的增加,不确定性增加,这使得提取PM2.5的长期时间特征变得具有挑战性。因此,在本文中,将来自相应时间段的空间特征、气象和环境特征结合起来,以改善模型在提取时间特征时的预测性能。特征融合的目的是将来自不同领域提取的特征数据集成到一个统一的表示中,从而为提取时间特征提供更全面的输入。

  为了整合来自不同领域提取的特征,本文采用了多维特征串联融合,如Fig.5所示。该图描述了从时间步长tt+n的特征融合过程。在时间步长tX^{t}表示通过多层GNN融合气象和环境知识后获得的高维数据。Y^{t}对应于通过多头GAT提取空间特征后获得的高维数据。P^{t}表示时间步长t的气象和环境数据,具体包括PM2.5值和气象特征(类似于多层GNN的输入O^{t})。在每个时间步长,这三部分数据被串联起来形成N^{t}。这个过程在n个时间步骤中重复进行,产生nN^{t}向量,对应于单个时间步骤。然后,这些n个向量再次串联起来形成高维数据M_{t}。在完成特征串联融合后,M_{t}进一步通过GRU进行后续时间特征提取处理。

Fig.5 特征融合

  GART模型结合了多个深度学习模型,用于提取时间特征和空间特征。因此,整体模型结构变得复杂,具有大量参数和高维向量,增加了参数调整和模型优化的难度。然而,引入GWO为解决这一问题提供了有效的解决方案。

GART模型的GWO优化的主要步骤如下:

step1:定义需要优化的GART参数,并确定它们的上下边界。

step2:初始化GWO的三个参数:灰狼种群大小(Wolf_num)、要优化的参数数量(dim)和允许的最大迭代次数(Max_iterations)

step3:初始化可训练参数aAC。其中,参数a的具体计算如Eq.(10)所示。

a=\frac{2*(Max\_iterations-t)}{Max\_iterations}                                                                                                           (10)

step4:计算GART的适应度,依次选择三个最低适应度值,并按升序将它们分配给αβδ狼。具体来说,根据step1的规定,生成适用于Wolf_num个参数组合,并将它们用作GART计算的输入。适应度由在验证集上的最佳损失值确定,其计算方式如Eq.(11)所示。

\textup{Val}_{loss}(x_{i},x{}'_{i})=\frac{\sum_{i=1}^{n}(x_{i}-x_{i}{}')^{2}}{n}                                                                                                (11)

其中,n是城市节点的数量,x_{i}是预测的PM2.5浓度,x_{i}{}'是真实的PM2.5浓度。基于模型返回的验证集损失值进行GWO优化。较小的损失值表示更高的预测准确性,表明GWO优化过程更接近最优解。

step5:更新参数aAC。计算猎物与灰狼之间的距离D,然后更新Omega狼的位置,将GART参数移动到最优组合附近。

step6:根据更新后的参数,通过代入GART计算Fitness。按顺序重新分配三个最小值给αβδ狼,并将最小值分配给X_{best}

step7:迭代Max_iterations次,持续更新X_{best}

step8:输出GART的最佳参数组合X_{best},并结束GWO的优化过程。

Fig.6 GWO优化

2 相关知识

  GAT(图注意力)的本质是让每一个节点和其他的节点计算AttentionAttention的方式有两种,一种是Global Graph Attention,即让当前节点和所有其他节点作Attention计算;另一种是Mask Graph Attention,即让当前节点只与邻居节点作Attention计算。Global Graph Attention的方式会缺失图的结构特征,因为在图结构数据中一个节点通常不会和其他所有节点都有边,如果计算与其他所有节点的Attention则会忽略掉这些节点是否与当前节点相邻这一信息,同时Global Graph Attention的计算量巨大。相反,Mask Graph Attention不会缺失图的结构特征,而且计算成本更小。

  GAT的具体计算流程如下。第一步,逐点计算节点i与其邻居节点N_{i}之间的注意力系数,计算公式为e_{ij}=a([Wh_{i}||Wh_{j}]),j \in N_{i}a_{ij}=\frac{exp(LeakyReLU(e_{ij}))}{\sum_{k\in N_{i}}^{} exp(LeakyReLU(e_{ik}))}。其中W为共享参数,对h_{i}h_{j}作线性变换;[\cdot || \cdot]表示拼接操作;a将拼接后的高维特征映射到一个实数上;a_{ij}是使用softmax归一化后的注意力系数。第二步,加权求和,公式为h{}'_{i}=\sigma (\sum_{j\in N_{i}}^{} a_{ij}Wh_{j}),至此节点更新完毕。

GAT代码如下:

import torch
import torch.nn as nn
import torch.nn.functional as Fclass GATLayer(nn.Module):def __init__(self, in_features, out_features, dropout, alpha, concat=True):super(GATLayer, self).__init__()self.in_features = in_features  # 定义节点向量的特征维度self.out_features = out_features  # 经过GAT之后的特征维度self.dropout = dropout  # dropout参数self.alpha = alpha  # LeakyReLU的参数# 定义可训练参数,即公式中的W和aself.W = nn.Parameter(torch.zeros(size=(in_features, out_features)))nn.init.xavier_uniform_(self.W.data, gain=1.414)  # xavier初始化self.a = nn.Parameter(torch.zeros(size=(2 * out_features, 1)))nn.init.xavier_uniform_(self.a.data, gain=1.414)  # xavier初始化# 定义LeakyReLUself.LeakyReLU = nn.LeakyReLU(self.alpha)def forward(self, input_h, adj):""":param input_h: [N, in_features]:param adj: 图的邻接矩阵,维度[N,N]:return: output_h"""h = torch.mm(input_h, self.W)  # [N, out_features]N = h.size()[0]  # 图的节点数input_concat = torch.cat([h.repeat(1, N).view(N * N, -1), h.repeat(N, 1)], dim=1).view(N, -1,2 * self.out_features)e = self.LeakyReLU(torch.matmul(input_concat, self.a).squeeze(2))zero_vec = -1e12 * torch.ones_like(e)attention = torch.where(adj > 0, e, zero_vec)attention = F.softmax(attention, dim=1)attention = F.dropout(attention, self.dropout, traning=self.training)output_h = torch.matmul(attention, h)return output_h

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

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

相关文章

AI预测福彩3D第27弹【2024年4月5日预测--第4套算法重新开始计算第12次测试】

今天继续按照合并后的算法进行测试,因为本套算法的命中率较高。以后有时间的话会在第二篇文章中发布排列3的预测结果。好了,废话不多说了,先上预测结果图,再上综合预测结果~ 2024年4月5日福彩3D的七码预测结果如下 第一套…

关于代码审查的一些思考

作为一名代码审查员,首先我们已经具备了丰富的代码开发经验,并且对提交的代码工程非常熟悉 代码审查可以发现并纠正代码中的错误、缺陷和不良实践。通过多人对代码进行仔细的检查和讨论,能够发现一些单独开发时难以察觉的问题,从…

5G智慧水利数字孪生可视化平台,推进水利行业数字化转型

5G智慧水利数字孪生可视化平台,推进水利行业数字化转型。随着5G技术的快速发展,越来越多的行业开始探索数字化转型的道路。水利行业作为国民经济的重要支柱,也面临着数字化转型的迫切需求。5G智慧水利数字孪生可视化平台作为水利行业数字化转…

Integer的缓存机制

LeetCode练习题--567.字符串的排列 今天刷题的时候,突然发现了一个问题: 为什么明明是相同的Integer值,有的时候使用""就可以,有的时候则必须使用equals方法来进行判断??? 于是我开始在网上查阅资料,几经无果,我开始阅读源码,一段时间后我才知道:原来Integer还有…

global关键字

global关键字 如果你想在局部作用域中修改全局变量,可以基于global关键字进行实现 默认情况下,在局部变量作用域只能对全局变量进行: 读取和修改内部元素(可变类型),无法对全局变量进行重新赋值 读取 …

ZS卧式不锈钢离心泵

一、结构与设计特点ZS卧式不锈钢离心泵是一种高效能、耐腐蚀的泵类设备,其核心结构包括电机、泵体、叶轮、轴封和底座等部分。泵体采用优质不锈钢材料,确保了良好的耐蚀性和强度,同时,流道设计优化,减少了流动损失&…

【python基础教程】6 表达式

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:python基础教程 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、…

Canon CMOS图像传感器应用和选型

一、CCD和CMOS图像传感器 常见的数字感光元件有两种:CCD(电荷耦合器件)和CMOS(互补金属氧化物半导体)。1980年代,CCD进入消费级市场,并长期占据中高端市场。CMOS图像传感器最初作为廉价、低画质…

开启虚拟机时出现此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态怎么解决

问题描述 虚拟机安装完成后,点击开启此虚拟机弹出系统提示 原因分析: Intel VT-x 处于禁用状态,需要开启。 解决方案: 以联系小新笔记本电脑为例,进入BIOS界面,将Intel Virtual Technology设置成Enabl…

Vue+OpenLayers7入门到实战:OpenLayers如何销毁已经创建好的地图容器

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上如何销毁已经创建好的地图容器。 在某些场景下,可能会需要销毁之前的地图,重新创建新的地图的需要,因此本章介绍一下在开始创建地图前如何先销毁之前的地图的功能。…

移动机器人运动规划 | 基于图搜索的Dijkstra 和 A*算法详解

Dijkstra 算法 Dijkstra 算法与BFS算法的区别就是 : 从容器中弹出接下来要访问的节点的规则不同 BFS 弹出: 层级最浅的原则,队列里最下方的元素 Dijkstra 弹出: 代价最小的节点g(n) g(n) :表示的是从开始节点到当前n节点的代价累加 Dijkstra在扩展的时候&#x…

利用native的方式实现跨线程调用

简介 在OpenHarmony应用开发实践中,经常会遇到一些耗时的任务,如I/O操作、域名解析以及复杂计算等。这些任务如果直接在主线程中执行,将会严重阻塞主线程,影响后续任务的正常流程,进而导致用户界面响应延迟甚至卡顿。…

【鸿蒙 HarmonyOS】获取设备的地理位置

一、背景 获取移动设备的地理位置,包含:经度、维度、具体地理位置等,地理位置信息能在许多业务场景中被应用,如导航、地图服务、位置服务、社交媒体等。 下面以一个Demo例子,来实现获取设备地理位置的功能 官方文档…

软件测试下的AI之路(4)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

实时计算平台设计方案:913-基于100G光口的DSP+FPGA实时计算平台

基于100G光口的DSPFPGA实时计算平台 一、产品概述 基于以太网接口的实时数据智能计算一直应用于互联网、网络安全、大数据交换的场景。以DSPFPGA的方案,体现了基于硬件计算的独特性能,区别于X86GPU的计算方案,保留了高带宽特性&…

Ceph学习 - 1.存储知识

文章目录 1.存储基础1.1 基础知识1.1.1 存储基础1.1.2 存储使用 1.2 文件系统1.2.1 简介1.2.2 数据存储1.2.3 存储应用的基本方式1.2.4 文件存储 1.3 小结 1.存储基础 学习目标:这一节,我们从基础知识、文件系统、小节三个方面来学习。 1.1 基础知识 1.…

UART设计

一、UART通信简介 通用异步收发器, 特点:串行、异步、全双工通信 优点:通信线路简单,传输距离远 缺点:传输速度慢 数据传输速率:波特率(单位:baud,波特) …

如何高效学习Python编程语言

理解Python的应用场景 不同的编程语言有不同的发展历史和应用场景,了解Python主要应用在哪些领域对于学习它会有很大帮助。Python最初是一种通用脚本语言,主要用于系统级任务自动化。随着时间的推移,它逐步成为数据处理、科学计算、Web开发、自动化运维等众多领域的主要编程语…

Navicat设置mysql权限

新建用户: 注意:如果不生效执行刷新命令:FLUSH PRIVILEGES; 执行后再重新打开查看; 查询权限命令:1234为新建的用户名,localhost为访问的地址 SHOW GRANTS FOR 1234localhost;如果服务器设置服务器权限后可能会出现权…

潜伏三年,核弹级危机一触即发,亚信安全深度分析XZ Utils后门事件

2024年3月29日星期五上午8点,有研究人员称xz/liblzma中的后门导致SSH服务器内存泄露,使得SSH服务异常(https://www.openwall.com/lists/oss-security/2024/03/29/4)。github中“xz”压缩工具主要由Larhzu和Jia Tan共同负责维护&am…