用于图像识别的判别图正则化技术

本文所涉及所有资源均在 传知代码平台 可获取。

目录

论文概述

图正则化技术及其优点

算法流程

在标准BLS中嵌入判别图正则化的方法

模型整体架构

代码复现

图拉普拉斯矩阵的构建——generateLmatrix.py文件

复现模型整体架构——bls2deep_graph.py文件

顶层文件——GBLS.py文件

示例:公开数据集训练——MNIST、ORL

数据集介绍

使用步骤

实验结果

环境配置

论文链接:https://link.springer.com/article/10.1007/s11432-017-9421-3#citeas

论文概述

宽度学习系统 (BLS) 被提出作为深度学习的一种替代方法。 BLS 的架构是将输入随机映射到一系列形成特征节点的特征空间中,然后将特征节点的输出广泛扩展形成增强节点,然后可以通过分析确定网络的输出权重。 BLS 的最大优势是当出现新的输入数据或神经元节点时,可以增量学习而无需重新训练过程。已经证明 BLS 能够克服基于梯度的深度学习算法中训练大量参数所带来的不足。 在论文中,作者们提出了一种新颖的判别图正则化宽度学习系统 (GBLS)。 考虑到数据的局部不变性属性,这意味着相似的图像可能具有相似的属性,流形学习被纳入到标准 BLS 的目标函数中。 在 GBLS 中,输出权重受到限制以学习更具有辨别信息,分类能力可以进一步增强。 进行了多项实验证明我们提出的 GBLS 模型可以胜过标准 BLS。

在这篇论文中,作者的主要工作是对BLS进行了改进创新,但其中为BLS的目标函数设计的判别图正则化技术在我们了解其原理之后可以应用到各种图像识别领域的模型中去,对于我们进一步改善模型的判别性和提升模型效率有着很大的帮助。

图正则化技术及其优点

随着人工智能技术的持续进步,图学习已经引起了许多研究人员的关注。通常,通过构建图和图匹配,图学习方法获取数据中的拓扑结构和潜在信息。图匹配的目标是找到两个图之间的结构相似性,这可以帮助我们理解复杂的图数据。例如,林一洁等人提出了一种名为对比匹配的动量蒸馏的新方法,可以更好地探索节点之间和边之间的相关性。此外,图构建将原始数据转换为图结构,用于后续的图分析和图学习任务。基于此,彭曦等人通过构建一种名为 L2-图的稀疏相似性图提出了稳健的子空间聚类和子空间学习算法。此外,为了挖掘数据中的潜在信息,研究人员已经将图构建与 BLS 结合起来。通过构建数据的内在图,图正则化广义学习系统(GBLS)在训练过程中考虑了数据的内在关系。根据构建的图,可以将适当的图正则化项嵌入标准 BLS 的目标函数中,从而提高 BLS 的学习能力。

参考文献:

1. Mouxing Yang, Yunfan Li, Peng Hu, Jinfeng Bai, Jiancheng Lv, and Xi Peng. “Robust multi-view clustering with incomplete information.” IEEE Transactions on Pattern Analysis and Machine Intelligence, 45(1): 1055–1069, 2022.

2. Yijie Lin, Mouxing Yang, Jun Yu, Peng Hu, Changqing Zhang, and Xi Peng. “Graph matching with bi-level noisy correspondence.” arXiv preprint arXiv:2212.04085, 2022.

3. Xi Peng, Zhiding Yu, Zhang Yi, and Huajin Tang. “Constructing the l2-graph for robust subspace learning and subspace clustering.” IEEE Transactions on Cybernetics, 47(4): 1053–1066, 2016.

算法流程

在标准BLS中嵌入判别图正则化的方法

首先,假设存在输入数据集{X,Y}{X,Y}。考虑到相同类型的数据来自同一流形空间,不同类型的数据来自不同的流形空间,我们通过(8)构建图VV,图VV是相似性矩阵,代表了图顶点之间的关系。

Vij={1Ntif l(Xi)=l(Xj)0if l(Xi)≠l(Xj)(1)Vij ={Nt 1 0 if l(Xi )=l(Xj )if l(Xi ) =l(Xj ) (1)

其中 NtNt 代表 tt 类样本的数量,l(⋅)l(⋅) 代表样本的标签。通过这种方式,我们能够考虑数据的流形结构。我们可以利用图 VV 获取图正则项 EGEG

LG=∑i,jVij∣∣yi^−yj^∣∣2=Tr(YT^LGY^)(2)LG =i,j Vij ∣∣yi ^ yj ^ ∣∣2=Tr(YT^LG Y^)(2)

其中 yiyi ,yjyj 分别代表 xixi 和 xjxj 的预测值,LGLG 则是图拉普拉斯矩阵,关于宽度学习系统,我在前面提到过输入数据将被映射成一次和二次特征,我们叫做特征节点和增强节点,在这里为了得到图正则项,我们需要根据这部分节点层得到一个先验的预测结果Y^Y^, 计算方法可通过公式 (3) , WW 是随机初始化的权重矩阵。

Zi=ϕi(XWzi+αzi),i=1,2,...,nHj=ηj(ZnWhj+βhj),j=1,2,...,mY=AW=[Zn∣Hm]W(3)Zi =ϕi (XWzi +αzi ),i=1,2,...,nHj =ηj (ZnWhj +βhj ),j=1,2,...,mY=AW=[ZnHm]W(3)

接下来获得图正则化项 LGLG 后,我们可以更新原始BLS的目标函数 (4) 得到新的目标函数 (5)。

arg⁡min⁡W ∥AW−Y∥22+λ∥W∥22.(4)argminW AWY22 +λW22 .(4)

arg⁡min⁡W ∥AW−Y∥22+βTr(YT^LGY^)+λ∥W∥22.(5)argminW AWY22 +βTr(YT^LG Y^)+λW22 .(5)

通过上述公式计算 WW 的偏导数,并最终可以通过公式(6)计算 WW :

W=(λI+βATLGA+AAT)−1ATY(6)W=(λI+βATLG A+AAT)−1ATY(6)

从上面可以看出,GBLS考虑了数据的基本几何结构,而标准BLS忽视了这一点,这是通过在(4)中添加一个常规图项来实现的。因此,输出权重可以受限以学习更具有区分性的信息,进一步增强分类能力。

模型整体架构

接下来我讲解一下,在加入了判别图正则化后,宽度模型的整体架构会如何变化。我将从输入数据开始到最终输出预测结果详细地介绍模型如何处理数据及内部的特征。如上所述,与标准 BLS 相比,GBLS 添加了图形正则项以考虑数据之间的内在关系,与此同时,GBLS 像 BLS 一样,使用传统的稀疏自编码器来微调获得的特征。具体的实施步骤如下:

给定数据集 {X,Y}{X,Y},我们首先随机生成一个权重矩阵 WW,将 XX 转换为映射特征节点 ZZ,然后通过稀疏自编码器算法 fSA(X,Z)fSA (X,Z) 获得所需的权重 W^TW^T。通过 W^TW^T,我们可以将原始数据 XX 转换为我们想要的 nn 组映射特征节点层 ZZ

Zi=ε(XWzi^T+azi),i=1,2,...,n(7)Zi =ε(XWzi ^ T+azi ),i=1,2,...,n(7)

其中 Wz^T=fSA(X,Z)Wz ^ T=fSA (X,Z),ε(⋅)ε(⋅) 是非线性激活函数,aziazi 是随机生成的偏置项,因此映射特征层可以定义为 Zn=[Z1,Z2,...,Zn]Zn=[Z1 ,Z2 ,...,Zn ],通过公式(8)可以得到增强节点层 HH

Hj=ψ(ZWHj^+βHj),j=1,2,...,m(8)Hj =ψ(ZWHj ^ +βHj ),j=1,2,...,m(8)

ψ(⋅)ψ(⋅)也是一个非线性激活函数,而 $\beta _ { Hj } $ 和 $ \hat { W_ { Hj } }$ 分别是随机生成的偏置项和权重。这样,我们可以通过合并映射特征和网络的增强节点 BB 来获得输入层。B=[Zn∣Hm]B=[ZnHm]。

接下来,我们需要计算连接系数 WW,使得 Y=BWY=BW。对于数据集 X,YX,Y,通过构建数据的内在图(通过(1)和(2) ),我们可以获得图正则项 EG=Tr(YT^LGY^)EG =Tr(YT^LG Y^)。 值得注意的是,这里 Y^Y^ 是新获得的输入层 BB 的预测结果。因此,获得 WW 的优化问题可以被定义为

arg⁡min⁡W ∥BW−Y∥22+χ1∣∣W∣∣22+χ2Tr(YT^LGY^)(9)argminW BWY22 +χ1 ∣∣W∣∣22 +χ2 Tr(YT^LG Y^)(9)

通过计算 WW 的偏导数,可以得到 WW 由下式得到

W=(χ1I+χ2BTLGB+BTB)−1BTY(10)W=(χ1 I+χ2 BTLG B+BTB)−1BTY(10)

具体的算法流程图如下所示:

代码复现

为了完整复现GBLS的算法流程,我使用层次化结构在五个文件中实现了模型的不同侧面。分别是bls2deep_graph.py文件——用于实现模型的整体架构、generateLmatrix.py文件——用于构建图拉普拉斯矩阵、GBLS.py文件——顶层文件用于端到端实现、sparse_bls_autoencoder.py文件——用于稀疏自编码器微调机制的实现、util.py文件——实用方法的集成,下面我将对算法的核心部分generateLmatrix.py文件、bls2deep_graph.py文件和GBLS.py文件分别给出他们的伪代码流程图并进行讲解,具体的代码可见附件。

图拉普拉斯矩阵的构建——generateLmatrix.py文件

函数 generateLmatrix(train_x, train_y, opt):
    # 获取标签
    gnd = 调用 result_tra(train_y)
    Label = 获取 gnd 的唯一值
    nLabel = Label 的数量
    nSmp = train_x 的行数    # 初始化权重矩阵 A
    A = 创建一个 nSmp x nSmp 的零矩阵    # 遍历每个标签
    对于每个标签 Label[idx]:
        classIdx = gnd == Label[idx]
        设置 A 中 classIdx 对应元素为 1 / classIdx 的和    # 减去 A 的对角线元素
    A = A - A 的对角线元素    # 计算度矩阵 D
    D = A 每行的和    # 计算拉普拉斯矩阵 L
    如果 opt['NORMALIZE'] == 1:
        D_inv_sqrt = D 的逆平方根对角矩阵
        L = 单位矩阵 - D_inv_sqrt * A * D_inv_sqrt
    否则:
        L = D 的对角矩阵 - A    返回 L

这段代码的主要功能是生成一个拉普拉斯矩阵,该矩阵常用于图形或网络分析中,帮助理解数据之间的关系。首先通过 result_tra 函数获取标签 gnd 并通过 np.unique 获取唯一标签 Label。然后创建一个大小为 nSmp x nSmp 的零矩阵 A,其中 nSmp 是样本数。接下来,遍历每个唯一标签 Label[idx],找到属于当前标签的样本索引 classIdx,并将权重矩阵 A 中对应于 classIdx 的元素设为 1 / 当前标签的样本数。随后,将权重矩阵 A 的对角线元素置为零。计算度矩阵 DD 是权重矩阵 A 每行元素的和。如果选项 opt['NORMALIZE'] 为 1,则计算归一化拉普拉斯矩阵 L,否则计算非归一化拉普拉斯矩阵 L,最后返回计算好的拉普拉斯矩阵 L

复现模型整体架构——bls2deep_graph.py文件

函数 bls2deep_graph(train_x, train_y, test_x, test_y, N1, N2, N3, L, s, c):
    标准化 train_x
    添加偏置项到 train_x,生成 FeatureOfInputDataWithBias
    初始化 OutputOfFeatureMappingLayer 和相关变量    记录开始时间 time_start    对于 i 从 0 到 N2-1:
        生成权重矩阵 weightOfEachWindow
        计算特征映射 FeatureOfEachWindow
        缩放特征映射到 [-1, 1]
        计算 betaOfEachWindow 并保存
        计算输出 outputOfEachWindow 并缩放,保存到 OutputOfFeatureMappingLayer    添加偏置项到 OutputOfFeatureMappingLayer,生成 InputOfEnhanceLayerWithBias    生成增强层权重 weightOfEnhanceLayer 并计算增强层输出 OutputOfEnhanceLayer
    计算伪逆矩阵 pinvOfInput 并计算输出权重 OutputWeight    记录结束时间 time_end,计算训练时间 trainTime
    计算训练集上的输出 OutputOfTrain 和准确率 trainAcc    标准化 test_x 并添加偏置项,生成 FeatureOfInputDataWithBiasTest
    初始化 OutputOfFeatureMappingLayerTest    记录开始时间 time_start    对于 i 从 0 到 N2-1:
        计算每个窗口的测试输出 outputOfEachWindowTest 并缩放,保存到 OutputOfFeatureMappingLayerTest    添加偏置项到 OutputOfFeatureMappingLayerTest,生成 InputOfEnhanceLayerWithBiasTest
    计算增强层测试输出 OutputOfEnhanceLayerTest    拼接生成 InputOfOutputLayerTest,计算测试集上的输出 OutputOfTest    记录结束时间 time_end,计算测试时间 testTime 和测试集上的准确率 testAcc    返回 testAcc 和 trainAcc

这段代码的功能主要是实现了GBLS的训练和测试过程。首先对输入数据进行预处理,然后通过特征映射层和增强层对数据进行特征提取和增强。特征映射层通过多个随机权重窗口来生成特征,而增强层则使用正交随机权重进行特征增强。随后,代码计算输出权重并通过伪逆矩阵求解。最后,代码对训练和测试数据分别计算输出并评估准确率。整个过程包括数据预处理、特征映射、增强层训练、输出层训练和测试阶段。

顶层文件——GBLS.py文件

函数 preprocess_data():
    加载并预处理数据
    返回 train_x, test_x, train_y, test_y#加载数据:
    调用 preprocess_data 函数,获取 train_x, test_x, train_y, test_y
    检查 train_x 中是否有无穷大或 NaN 值#处理测试集:
    随机排列 test_x 的行顺序
    设置 opt 字典,NORMALIZE 为 1
    打印 train_x, train_y, test_x, test_y 的形状#生成拉普拉斯矩阵:
    调用 generateLmatrix 函数,传入 train_x, train_y, opt,得到 L
    打印 L 的形状#设置参数:
    C = 2 ** -30
    s = 0.8
    par 字典,包含 lambdaG, C, s, NumLayer, range, randstate, ActFun#设置模型参数:
    NumWin = 10
    NumWinNode = 20
    NumHid = 100#训练和测试模型:
    调用 bls2deep_graph 函数,传入 train_x, train_y, test_x, test_y, NumWin, NumWinNode, NumHid, L, s, C
    获取并返回训练和测试准确率 trAcc, ttAcc

这段代码的功能是实现数据预处理、生成拉普拉斯矩阵并训练和测试GBLS模型。首先,通过定义 preprocess_data 函数加载并返回训练和测试数据,从 ./ORL/ORL7.mat 文件中加载训练数据 train_x、测试数据 test_x、训练标签 train_y 和测试标签 test_y,然后调用 check_inf_nan 函数检查数据中是否有无穷大或 NaN 值。接着,调用 generateLmatrix 函数,基于训练数据和标签生成拉普拉斯矩阵 L,并打印生成的拉普拉斯矩阵的形状。之后,定义模型的超参数,包括正则化参数 C、收缩参数 s 以及其他参数 parNumWin 表示窗口数量,NumWinNode 表示每个窗口的节点数量,NumHid 表示隐藏层节点数量。最后,调用 bls2deep_graph 函数,传入训练和测试数据、拉普拉斯矩阵和其他超参数,训练并测试基于 BLS 的模型,最终输出训练准确率 trAcc 和测试准确率 ttAcc。总结来说,这段代码的主要功能是加载和预处理数据,生成拉普拉斯矩阵,并使用深度广度学习系统(BLS)进行模型训练和测试,最终输出训练和测试的准确率。

示例:公开数据集训练——MNIST、ORL

在这里,我将展示如何将复现好的代码应用在公开数据集上进行训练和测试。由于在论文中,判别图正则化技术已经被验证在图像识别领域会给模型带来显著的效果提升,因此在这里我们使用了MNIST数据集和ORL人脸识别数据集来进行实验,看看复现代码的效果如何。

数据集介绍

  • MNIST手写数字识别数据集是目前最经典的图像识别数据集,其中包括70000张图片样本,其中60000张作为训练集,10000张作为测试集。
  • ORL(Olivetti Research Laboratory)人脸识别数据集由剑桥大学计算机实验室的Olivetti研究实验室于1992年创建,包含40个人的面部图像,图像尺寸为92x112像素,灰度图像。每个人的图像在时间上有不同间隔,包含不同的光照条件、面部表情和细微变化,图像格式为PGM,按照人物ID分类存储。该数据集广泛用于人脸识别算法的训练和测试,评估算法性能。常见使用方式包括将数据集分为训练集和测试集,挑战在于图像中的姿态、光照和表情变化较大,对算法的鲁棒性和泛化能力提出了高要求。其中又可以细化为ORL5、ORL6数据集
  • UMIST (University of Manchester Institute of Science and Technology) 数据集是一个广泛用于人脸识别和计算机视觉研究的经典人脸图像数据集,包含来自20个人的575张人脸灰度图像,分辨率为112 x 92像素。这些图像涵盖了不同的姿态变化,包括从左侧面到右侧面的各种角度和表情,每个人的图像都保存在单独的文件夹中,并以人的身份标识符命名。UMIST数据集常用于训练和测试人脸识别算法,如PCA、LDA、SVM等,也用于姿态估计和机器学习、模式识别研究,作为基准数据集。这些图像背景统一,减少了背景干扰对识别结果的影响。可以通过相关研究机构或数据集存储库获取UMIST数据集,用于人脸识别和计算机视觉领域的研究。

使用步骤

  1. 首先我们需要获取想要使用的公开数据集,最好放在项目目录中,在这里我已经将这两份数据集打包放在了附件文件包中,大家也可以前往数据集官网进行下载:MNISTORLUMIST

  1. 在获取到数据集之后我们需要进去顶层文件GBLS.py中将所要使用的数据加载到内存环境中并进行预处理,在这里我已经为大家写好了对这两份数据集的加载以及预处理方法,大家可以将对应的代码取消注释便可以使用。

  1. 接下来运行代码便可以进行模型的训练和测试,最后我们需要输出对模型预测的评价指标,常见的对分类任务的评价指标有准确度,F1分数和查准率等,在这里我已经在bls2deep_graph.py的show_accuracy函数中为大家实现了一些通用的评价指标,大家也可以根据自己的需要编写更对的评价指标计算方法对模型进行更多方面的评估。

  1. 得到输出结果,这里以ORL6数据集为例,调整模型节点数为10,200,100

实验结果

在原论文中,作者将GBLS模型在多个图像识别数据集上进行了实验以验证了他们算法的有效性,因此,我在同样的的三种经典图像识别数据集上进行了多次实验,一是向大家介绍该如何使用这份代码,二是验证了这份代码的可靠性。实验结果如下图所示:

可以看到搭建的模型在三份数据集上都能取得不错而且稳定的效果,在粗略的手调情况下,在三份数据集上的各项指标都能达到90%以上,在UMIST数据集上的效果甚至已经达到原论文数值。同时,可以看到我们在一定范围内调节网络的节点数模型的分类效果保持稳定,在网络结构拓宽时分类性能稳步提升,这说明了搭建的模型学习能力不会出现剧烈抖动,我们可以通过网格搜索来进一步寻找到能让模型收敛的最优参数。

环境配置

  • python版本3.6及以上,操作系统可使用Windows、MacOs、Linux
  • 安装第三方库:scipy、sklearn、mat73、time

感觉不错,点击我,立即使用

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

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

相关文章

Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND

Case1 : 表没有主键 show create table xxx desc table Case2 : 表是MEMORY表 show create table xxx desc table https://dev.mysql.com/doc/mysql-replication-excerpt/5.7/en/replication-features-memory.html

KDTS 实现MySQL至KingbaseES迁移实践

此文章以linux环境实践,KingbaseES一下使用KES代替。 KDTS KDTS工具安装KES时会一起安装,一般存在目录为:ClientTools目录下guitools文件夹中 启动 进入KDTS-WEB下bin目录,执行sh文件 cd /opt/Kingbase/ES/V8/ClientTools/guit…

70.【C语言】动态内存管理(重点)(3)

本文为数据结构打下基础 备注:数据结构需要掌握指针,结构体和动态内存管理 承接69.【C语言】动态内存管理(重点)(2)文章 目录 4.calloc函数 cplusplus网的翻译 提炼要点 使用 5.recalloc函数 使用说明 作用 调整内存空间的几种情况 1.原有空间之后有足够大的空间 …

自动猫砂盆是养猫新型智商税吗?测评2024年热门款智能猫砂盆分享

铲屎官们只要一察觉到猫主子拉屎,就要马上去铲掉,这不仅是为了猫砂盆中其他干净的猫砂,更是为了防止猫屎残留发臭,特别是便便这种东西,一旦放久了就很招虫子,家里出现这些虫子又要大扫除消杀,特…

使用Python接口自动化测试post请求和get请求,获取请求返回值

引言 我们在做python接口自动化测试时,接口的请求方法有get,post等;get和post请求传参,和获取接口响应数据的方法; 请求接口为Post时,传参方法 我们在使用python中requests库做接口测试时,在做post接口测试…

论文精读:基于概率教师学习的跨域自适应目标检测(ICML2022)

原文标题:Learning Domain Adaptive Object Detection with Probabilistic Teacher 中文标题:基于概率教师学习的域自适应目标检测 代码地址: GitHub - hikvision-research/ProbabilisticTeacher: An official implementation of ICML 2022 p…

计算机网络——ftp

在网络通信中,控制连接和数据连接是两种不同类型的连接,它们各自具有特定的功能和用途。 一、控制连接 定义与功能: 控制连接主要用于在通信双方之间传输控制信息,以建立、维护和终止数据连接。它负责协调和管理数据传输的过程&am…

图像数据增强库综述:10个强大图像增强工具对比与分析

在深度学习和计算机视觉领域,数据增强已成为提高模型性能和泛化能力的关键技术。本文旨在全面介绍当前广泛使用的图像数据增强库,分析其特点和适用场景,以辅助研究人员和开发者选择最适合其需求的工具。 数据增强的重要性 数据增强在深度学习…

架构设计笔记-7-系统架构设计基础知识

目录 知识要点 单选 案例分析 1.质量属性 / 管道过滤器 / 数据仓库风格 2.面向对象风格 / 控制环路风格 3.软件架构风格 / 架构风格选择 4.体系结构方案对比 5.面向对象风格 / 基于规则风格 6.解释器风格 / 管道过滤器风格 7.面向对象风格 / 解释器风格 8.软件架构复…

直击工博会 | 万物集与四大供应商强强联手,开启战略合作新纪元!

9月24日,第24届中国国际工业博览会在国家会展中心(上海)开幕。本届工博会设置数控机床与金属加工展、工业自动化展、节能与工业配套展、新一代信息技术与应用展等9大专业主题展,吸引28个国家和地区2600家企业参展。万物集作为参展…

Canal 扩展篇(阿里开源用于数据同步备份,监控表和表字段(日志))

1.Canal介绍 Canal把自己伪装成从数据库,获取mysql主数据库的日志(binlog)信息,所以要想使用canal就得先开启数据库日志 https://github.com/alibaba/canal Canal 主要用途是基于 MySQL 数据库增量日志解析,提供增量…

影刀RPA在智能客服上的运用

随着人工智能技术的不断发展,智能客服系统逐渐成为企业提升服务效率和质量的重要工具。影刀RPA(Robotic Process Automation,机器人流程自动化)作为一种模拟人类用户行为的技术,通过自动化执行重复性高、规则明确的任务…

1. Oracle 安装报错——环境变量过长

文章目录 1. 报错详细信息2. 解决方案2.1 方案一:修改配置文件cvu_prereq.xml2.2 方案二:修改环境变量配置 1. 报错详细信息 安装 Oracle 过程中,在执行 “先决条件检查” 时报错: 报错内容: This test checks wheth…

163页PPT罗兰贝格品牌战略升级:华为案例启示与电器集团转型之路

罗兰贝格作为一家全球顶级的战略管理咨询公司,其品牌战略升级理念在多个行业中得到了广泛应用。以下将以华为案例为启示,探讨电器集团的转型之路,并融入罗兰贝格品牌战略升级的思想。 一、华为案例的启示 华为与罗兰贝格联合撰写的《数据存…

MySQL【知识改变命运】03

表的基本操作 1:查看所有表2:创建表3:查看表结构4:修改表5: 删除表 前言:我们先了解一个知识: MySQL安装后会有MySQL服务——管理多个库——每个库管理多个表——每个表管理多行数据——数据行由…

鲁班到家上门安装维修系统源码开发之结构功能解析

随着物联网和智能家居的普及,消费者对便捷、高效的生活方式需求日益增加。鲁班到家作为一款专注于家居安装维修服务的平台,凭借其多渠道预约、智能派单、在线支付与费用明细透明等优势,在市场上赢得了广泛认可。本文将详细解析鲁班到家上门安…

【Unity踩坑】UWP项目安装包认证失败

问题:在Unity导出的VS项目,打包生成appx后,进行应用认证时失败。提示部分API不支持。 API __C_specific_handler in kernel32.dll is not supported for this application type. UnityPlayer.dll calls this API.API DXGIGetDebugInterface1 …

操作系统 | 学习笔记 | 王道 | 4.3 文件系统

4.3 文件系统 4.3.1 文件系统结构 文件系统(File system)提供高效和便捷的磁盘访问,以便允许存储、定位、提取数据。 用一个例子来辅助记忆文件系统的层次结构: 假设某用户请求删除文件"D:/工作目录/学生信息.xIsx"的最后100条记录。 用户需…

MongoDB集群模式详解及应用实战

目录 本节课内容: 集群搭建 1.创建3个目录: 2.编辑配置文件 ​编辑 3.启动: 4.看看: 5.另外,两个如上1,2,3步骤操作 ,但是日志目录,端口什么的需要改一下即可。 …

[稳定检索|投稿优惠]2024年材料科学、能源技术与智能制造国际会议(MSETIM 2024)

2024年材料科学、能源技术与智能制造国际会议 2024 International Conference on Materials Science, Energy Technology, and Intelligent Manufacturing 【1】大会信息 会议名称:2024年材料科学、能源技术与智能制造国际会议 会议简称:MSETIM 2024 大会…