笔记:深度学习与有向无环图SVM结合用于年龄估计的局部调整

2023-10-29

阅读论文:Combined Deep Learning With Directed Acyclic Graph SVM for Local Adjustment of Age Estimation | IEEE Journals & Magazine | IEEE Xplore

目录

1. 基本信息

2. 核心内容

3. 相关内容

3.1 SE-RESNET-50

 1) RESNET

2) SQUEEZE-AND-EXCITATION模块

3.2 LAAE 

A 局部调整

B 线性支持向量机

C 有向无环图SVM

D 邻域的设计

4. 实验

A 预处理、实验装置和评价指标

B 烧蚀实验

C 对比实验

5. 结论


 

1. 基本信息

C. Xiao, Z. Zhifeng, C. Jie and Z. Qian, "Combined Deep Learning With Directed Acyclic Graph SVM for Local Adjustment of Age Estimation," in IEEE Access, vol. 9, pp. 370-379, 2021, doi: 10.1109/ACCESS.2020.3046661.

关键词:年龄估计,深度学习,有向无环图支持向量机,局部调整。

2. 核心内容

A. 论文提出了一种基于深度学习和有向无环图SVM的局部调整年龄估计算法(LAAE)。流程图见图1。

B. 论文思想在训练阶段,首先对VGGFace2数据集预先训练好的SE-ResNet-50网络进行微调。一旦网络收敛,由最后一个完全连接层的参数组成的向量作为表示,并训练多个一对一的(One-Versus-One)支持向量机。在测试阶段,我们首先将待估计的人脸图像送入SE-ResNet-50得到粗略的年龄估计值,然后设置特定的邻域,最后将训练好的支持向量机组合成有向无环图支持向量机,以全局估计的特定邻域为中心进行精确的年龄估计

C. 实验设置:

          数据集:VGGFace2数据集、AFAD图像集、MORPH图像集;

         年龄估计的性能度量:平均绝对误差(MAE)和累积得分(CS);

3. 相关内容

3.1 SE-RESNET-50

 1) RESNET

在VGGNet中,CNN达到了19层,在GoogleNet中,网络的层数达到了前所未有的22层。然而,在深度学习中,网络层数的增加通常伴随着计算资源的消耗、模型过拟合、梯度消失和梯度爆炸等问题。对于有足够研究资金的企业或大学来说,只有通过GPU集群才能解决计算资源短缺的问题。通过收集大量有效样本数据,配合Dropout等正则化方法,也可以解决过拟合问题梯度问题也可以通过批量归一化来解决。似乎只要神经网络的层数不断增加,就能获得效益,但实验数据并不能有效地支持这一观点。网络深度越大,训练误差越大。当网络退化时,浅层网络可以达到比深层网络更好的训练效果。此时,如果将较低层的特性传输到较高层,效果应该不会比浅层网络差。从信息论的角度看,由于数据处理不平等的存在,在前向传输过程中,随着层数的加深,特征图中包含的原始图像信息会逐层减少,而身份映射的加入则保证了网络的后一层必然比前一层包含更多的图像信息。基于快速映射的思想,提出了残差神经网络

残差网络是在原有神经网络的基础上添加一系列残差模块而形成的,如下图2所示。图2可以表示为:X_{l+1}=H(X_{l})+F(X_{l},W_{l}),其中H(X_{l})=X_{l}是图左边的恒等映射,F(X_{l},W_{l})为曲线右侧的残差,其中W_{l}为 l层的权重和偏差。当 当前层和后一层的特征图的数量维度不同时,需要进行1*1卷积运算来降低或提升维度。此时,H(X_{l})={W}'_{l}X_{l},其中{W}'_{l} 是 1∗1卷积运算。

2) SQUEEZE-AND-EXCITATION模块

在卷积神经网络的卷积层,一系列卷积核的集合可以看作是输入通道上的邻域空间连接方式,它融合了局部接收域中的空间维度信息和通道信息。卷积神经网络通过叠加一系列卷积层、非线性激活函数和池化操作来获取层次模式并获得理论的全局接受域,从而生成鲁棒的表征。为了从空间信息层面提高网络性能,人们做了大量的研究工作。例如,初始结构中嵌入了多尺度信息,将多个感官场的特征依次聚合。由内而外考虑空间的邻域信息。Squeezing-and-Excitation模块(SE)通过考虑特征通道之间的关系来提高网络性能。该方法是自动学习每个特征通道的重要性。其重要性在于加强和抑制当前任务中不存在的特征。挤出激励模块(extruding-excitation module)各部分操作说明如下:

(1)F_{tr}:一般来说,它是卷积运算。

(2)F_{sq}:挤压操作(Operation of Squeeze)。我们沿空间维度进行特征压缩,使输出维度与输入特征通道数匹配。此外,将每个二维特征通道转化为一个标量,该标量具有一定的全局接受域。它表示响应在特征通道上的全局分布,并使全局接受域在靠近输入的层可用。

(3)F_{ex}:激发操作(Excitation operation)。这是一种类似于循环神经网络中的门的机制,它通过学习显式地对特征通道之间的相关参数进行建模来为每个特征通道生成相应的权重。

(4)F_{scale}:重新分配(即缩放)操作。在特征选择后,将激励输出(excitation output)的权重作为每个特征通道的重要程度,再乘以通道上的前一特征,完成原始特征在通道维度上的特征重校准。

SE模块可以集成到网络中,例如初始网络或残留网络。本文采用SE-Resnet-50作为主干网络,如图3所示。

先用一个残差模块后,再通过挤压使用全局平均池化操作,然后对两个全连接层之间的相关性进行显式建模:首先,将特征维数取为原来的1/r(r一般取16),经过一个完全连接的回溯到原来维度的瓶颈操作模块具有更强的非线性,大大降低了参数个数和计算复杂度,然后通过Sigmoid将特征权值取为0到1之间的值,最后通过Scale 运算对信道特征进行加权。

3.2 LAAE 

A 局部调整

 LAAE的想法是让CNN估计的年龄值尽可能接近局部邻域的真实年龄,如4所示。

假设对于输入数据y,对应的CNN输出为f(y),即图4中的小黑圈。可能f(y)距离图中红色小圆的实际年龄值L还有一段距离,因此局部调整的年龄估计的思想是将估计值f(y)在区域范围的2d内左右滑动(即增加或减少),使其更接近实际年龄值L,它可以用公式表示为L∈[f(y)−d,f(y)+d]。

这样,局部调整的年龄估计可分为两个步骤:

1) 使用CNN网络对所有训练数据进行年龄分类。这一步可以被认为是粗略估计或全局估计。

2) 关注第一步的结果,并在小范围内进行局部调整。相应地,这一步可以被认为是微调或局部估计。

此时,关键问题是如何验证一定范围内的不同年龄值进行局部调整。我们的目标是通过全局回归使最初估计的年龄尽可能接近真实年龄。我们将每个年龄标签看作一个类别,并使用分类的方法对不同的年龄值进行局部调整或验证。由于每次局部调整只使用少量的年龄标签,因此回归方法无法正常工作。对于基于分类方法的局部调整,分类器方法有很多选择,但这里我们使用线性支持向量机进行局部调整。主要原因是SVM在训练样本较少的情况下具有鲁棒性。这已经在之前的小样本案例研究中得到了证明,如人脸识别、图像检索、音频分类和检索以及人脸表情识别。

线性支持向量机

已知训练向量(y1,z1),…,(yn,zn)属于两类,其中y_{i}\in R^{d},z_{i}\in\left \{ -1,+1 \right \}。线性支持向量机可以学习一个最优分类超平面wy+b=0来最大化两个类别之间的边界。SVM的学习本质是找到以下拉格朗日泛函的鞍点:

其中S是拉格朗日乘数。其优化目标可以归结为以下对偶问题:

此时,最优超平面可以表示为对偶解:

将b的值代入原方程wy + b = 0即可求解。

测试时,对于任意数据点y,分类结果可以通过以下函数给出:

如果训练数据不可分,则可以引入松弛变量\xi _{i}。这部分的详细介绍可以参考该部分的详细介绍。

有向无环图SVM

 经典支持向量机最初是为解决二分问题而设计的。当它扩展到多分类问题时,有以下几种方法:

1) 一对一:每两个类学习一个分类器;

2) 一对多:为每个类和其余的类训练一个以上的支持向量机;

3) 多对多:对于所有的类同时训练SVM显然不适合最后两种方法的算法,因为在局部调整部分只包括少量的样本,如果使用后面两种方法,SVM将在每次局部调整时动态地进行训练,这种训练无疑会增加第一种方法在任务中是可行的复杂度,原因是它不需要在线训练SVM,即所有的对都将离线训练SVM分类器。

在组合多个一对一的二值分类器的过程中,可以引入图论中有向无环图的思想,将多个二值分类器组合成多类分类器。对于n-分类问题,有向无环图SVM需要构造C_{n}^{2}=n(n-1)/2 个分类器,对应于n层结构中分布的 n(n-1) 个节点。以n=4为例,有向无环图中支持向量机的拓扑如5所示。

5可以看出,有向无环图的顶层只包含一个节点,即根节点,第二层包含两个节点,依此类推,第i层包含i个节点,直到底层完成了n个类的分类。如果输入一个样本,则有向无环图从根节点开始,计算每个节点的符号函数sign(w\cdot y+b)的决策值(见公式4)。如果为-1,则进入左子节点,如果为1,则变为右子节点。而最后一层叶节点的输出可以表示样本的类别。从这个角度来看,有向无环图等价于表操作:当初始表格包含所有类别时,则每个节点操作形成前后的两种比较,排除最不可能属于该类别的样本,并删除一个类别,在表格末尾的表格中只剩下一个类别作为样本所属的类别。

一般来说,对于n分类问题,在测试阶段只需要n-1个比较。这里,成对比较的数量被限制在m-1,因为只有m类参与局部调整(m<n)。

邻域的设计

 在理论上,局部平差的邻域U(f(y),d)=\left \{ x|f(y)-d< x< f(y)+d \right \}很难设计,因为它是由许多因素决定的,例如样本规模的大小和粗略估计器的性能。然而,可以有广泛的方向:搜索范围越广,将真实年龄纳入该范围的可能性就越大。如果搜索区域太小,无法达到实际的年龄标签,那么在局部搜索时可能会找到任意的年龄标签。另一方面,如果局部搜索的范围过大,也增加了调整年龄偏离真实年龄的可能性,因为局部分类只是局部最优搜索。

为了局部调整年龄估计并满足有向无环图SVM的特殊拓扑结构,我们尝试了2的幂的不同局部搜索范围,即2(d = 1)、4(d = 2)、8(d = 4)和16(d = 8)。

从理论上讲,我们可以将搜索范围扩展到数据集的相同样本大小,但这不能满足“局部调整”的策略,所以我们将搜索范围设为最多16个

在下一节的实验中,我们将指定不同的范围,并演示不同的局部搜索范围对结果的影响。主要目的是为了证明局部调整确实可以提高单个机器学习分类器或深度学习网络的年龄估计性能。

4. 实验

预处理、实验装置和评价指标

在年龄估计之前,对原始人脸图像进行以下预处理:首先利用级联的VJ检测器进行人脸检测,然后利用AAM定位人脸参考点,最后将人脸图像缩放到224∗224进行实验。本实验在caffe的GPU开源框架下进行,所使用的预训练SE-ResNet-50模型来源于文献[12](Q. Cao, L. Shen, W. Xie, O. M. Parkhi, and A. Zisserman, ‘‘VGGFace2:A dataset for recognising faces across pose and age,’’ in Proc. 13th IEEE Int. Conf. Autom. Face Gesture Recognit. (FG), May 2018, pp. 49–57.)。

年龄估计的性能通过两个度量来评估:平均绝对误差(MAE)和累积得分(CS)

MAE定义为预测年龄值与实际年龄值之间的平均绝对误差:

                                                              MAE=\sum_{k=1}^{N}|\hat{l_{k}}-l_{k}|/N

其中l_{k}是测试样本k的实际年龄值,\hat{l_{k}}是估计的年龄值,N是测试集的样本大小。

CS的公式定义为:

                                                                 CS(j)=N_{e\leq j}/N\times 100%

其中N_{e\leq j}是测试集中绝对值误差不小于j(即容差年龄误差)的图像总数。

B 烧蚀实验

为了证明LAAE的有效性,我们指定了不同的邻域,并展示了不同的局部搜索范围对结果的影响。作为对比,我们还增加了仅使用SE-ResNet和DAG SVM的消融实验(在这种情况下,使用图像三通道像素和线性降维即主成分分析(PCA)进行特征提取),结果如表1所示。

表1可以得出以下结论

  1. MORPH的性能总是比AFAD好。原因是MORPH中的图像是正式拍摄的,光照条件和相机性能都很好,而AFAD中的图像是从社交网络中抓取的,因此分辨率不同,这就造成了性能上的差异。
  2. 单一深度学习方法在两个数据集中的性能都优于单一经典机器学习方法(即本节中的DAG-SVM),进一步证明了深度学习的优越性。
  3. 局部调整的效果总是优于纯机器学习方法或纯深度学习方法,但不同邻域产生的性能差异很大,且两个数据集的最佳邻域设置也不相同。原因在于MORPH和AFAD的样本量大小不同,即MORPH中的类别数较多,所以搜索范围越大,性能越好,而AFAD则相反,因为其最好的性能是在d=4,之后邻域越大,效果就越差。

我们只取最大邻域d = 8。除了在前一节中提到的原因,邻域越大,越不符合局部调整的前置条件外,还有一个重要原因,那就是如果以d=16为较大的邻域,局部调整的范围将扩大到32个,而AFAD中的类别为40-16 + 1 = 35,相当于年龄的第二次估计。

对比实验

为了进一步验证该方法的有效性,将结果与其他基于深度学习的年龄估计方法进行了比较,结果如表2、图8和图9所示。论文的方法在MORPH和AFAD上的平均绝对误差分别达到3.04和3.17,与比较算法Cluster-CNN中最好的方法相比,我们的方法的性能明显超过了以前的方法,在平均情况下,我们的方法的性能提高了6%左右。

通过与其他累积得分指数方法的比较,我们分别选出了MORPH上最好的LAAE(d=8)和AFAD上最好的LAAE(d=4)。对比实验结果可以看到图8和图9,当容差年龄误差大于4时,我们的方法是领先于其他比较方法的。在图9中,我们的方法总是优于Cluster-CNN。

 

 在图10和图11中,我们进一步比较了纯SE-ResNet-50和LAAE(d=8和d=4)在每个年龄的准确性。同样,我们的方法在几乎所有情况下都取得了一致的领先优势。需要注意的是,SE-ResNet-50的精确度极差,性能平平。我们的方法更统一,可能是因为它隐式地解决了类不平衡问题。这一结果也详细说明了使用局部调整方法来估计年龄的优越性。

5. 结论

本文提出了一种局部调整的年龄估计方法LAAE。具体地,首先利用深度学习对年龄进行全局粗略估计,然后通过设置邻域对DAG SVM进行局部精细估计。从实验结果可以看出,本文提出的由粗到精或/和从全局到局部的方法比纯深度学习和纯机器学习方法具有更好的性能,与其他方法的比较进一步说明了LAAE的有效性。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

笔记:深度学习与有向无环图SVM结合用于年龄估计的局部调整 的相关文章

  • lr推荐模型 特征重要性分析

    在分析lr模型特征重要性之前 需要先明白lr模型是怎么回事儿 lr模型公式是sigmoid w1 x1 w2 x2 wn xn 其中w1 w2 wn就是模型参数 x1 x2 xn是输入的特征值 对于lr模型来说 特征可以分为两个粒度 一个是
  • 卷积神经网络:专门用于图像和语音处理的深度学习模型

    随着人工智能技术的发展和应用 深度学习模型在图像和语音处理领域中扮演着越来越重要的角色 其中 卷积神经网络 Convolutional Neural Network 简称CNN 是一种专门用于图像和语音处理的深度学习模型 本文将介绍卷积神经
  • lr推荐模型 特征重要性分析

    在分析lr模型特征重要性之前 需要先明白lr模型是怎么回事儿 lr模型公式是sigmoid w1 x1 w2 x2 wn xn 其中w1 w2 wn就是模型参数 x1 x2 xn是输入的特征值 对于lr模型来说 特征可以分为两个粒度 一个是
  • OpenCV中基于HOG特征的SVM分类器用于“对象检测”

    我有一个项目 我想检测图像中的物体 我的目标是使用 HOG 功能 通过使用 OpenCV SVM 实现 我可以找到用于检测人的代码 并且我阅读了一些关于调整参数以检测对象而不是人的论文 不幸的是 由于一些原因我无法做到这一点 首先 我可能错
  • 绘制超平面线性SVM python

    我正在尝试绘制使用 LinearSVC 和 sklearn 训练的模型的超平面 请注意 我正在使用自然语言 在拟合模型之前 我使用 CountVectorizer 和 TfidfTransformer 提取了特征 这里是分类器 from s
  • R 中的 SVM:“预测器必须是数字或有序的。”

    我是 R 新手 遇到了这个问题 我想比较两种预测技术 支持向量机和神经网络 将它们应用于某些数据 并且我想比较它们的性能 为此 我使用 ROC 曲线 该代码应该计算 ROC 曲线下的面积 但它不起作用 神经网络代码工作正常 但是当 SVM
  • 带有 SVM 基分类器的 AdaBoost 的执行时间

    我刚刚用这些参数制作了一个 Adaboost 分类器 1 n estimators 50 2 base estimator svc 支持向量分类器 3 learning rate 1 这是我的代码 from sklearn ensemble
  • ValueError:此求解器需要数据中至少 2 个类的样本,但数据仅包含一个类:1.0

    我有一个包含 8670 次试验的训练数据集 每个试验的长度为 125 次样本 而我的测试集由 578 次试验组成 当我应用 scikit learn 中的 SVM 算法时 我得到了非常好的结果 但是 当我应用逻辑回归时 会出现此错误 Val
  • 十分钟部署清华 ChatGLM-6B,实测效果超预期(Linux版)

    前段时间 清华公布了中英双语对话模型 ChatGLM 6B 具有60亿的参数 初具问答和对话功能 最 最 最重要的是它能够支持私有化部署 大部分实验室的服务器基本上都能跑起来 因为条件特殊 实验室网络不通 那么如何进行离线部署呢 经过一上午
  • 概述:利用大模型 (LLMs) 解决信息抽取任务

    论文标题 Large Language Models for Generative Information Extraction A Survey 论文链接 https arxiv org pdf 2312 17617 pdf 论文主要探讨
  • 如何使用 R 中 e1071 包的“svm”执行多类分类

    我想使用执行多类分类svm的函数e1071包裹 但据我从文档中了解到svm 只能进行二元分类 插图文档讲述了多类分类的情况 为了允许多类分类 libsvm通过拟合所有二元子分类器并通过投票机制找到正确的类 使用一对一技术 我仍然不明白的是我
  • 深度好文:最全的大模型 RAG 技术概览

    本文是对检索增强生成 Retrieval Augmented Generation RAG 技术和算法的全面研究 对各种方法进行了系统性的梳理 涉及了 RAG 流程中的数据拆分 向量化 查询重写 查询路由等等 在做 RAG 的小伙伴一定知道
  • 用通俗易懂的方式讲解:内容讲解+代码案例,轻松掌握大模型应用框架 LangChain

    本文介绍了 LangChain 框架 它能够将大型语言模型与其他计算或知识来源相结合 从而实现功能更加强大的应用 接着 对LangChain的关键概念进行了详细说明 并基于该框架进行了一些案例尝试 旨在帮助读者更轻松地理解 LangChai
  • 用CHAT分析高校体育智慧教学体系构建与探索研究现状

    CHAT回复 现阶段 高校体育智慧教学体系的构建与探索研究还处于初级阶段 但全球数字化转型大潮的推动下 一些较为前沿的研究和实践已经开始出现 1 教学平台的建设 很多高校已经开始尝试使用在线教育平台进行体育教学 把传统的面对面授课模式转变为
  • 15天学会Python深度学习,我是如何办到的?

    陆陆续续有同学向我们咨询 Python编程如何上手 深度学习怎么学习 如果有人能手把手 一对一帮帮我就好了 我们非常理解初学者的茫然和困惑 大量视频 书籍 广告干扰了大家的判断 学习Python和人工智能 成为内行人不难 为此 我们推出了
  • R SVM 对于缺失数据的预测返回 NA

    我尝试使用 e1071 包中经过训练的 SVM 进行预测 但我的数据包含一些缺失值 NA 当该实例有任何缺失值时 我希望返回的预测为 NA 我尝试使用 na action na pass 如下 但它给了我一个错误 名称错误 ret2 如果我
  • 在 Matlab 中使用 svmtrain 内存不足

    我有一组数据正在尝试使用 SVM 来学习 对于上下文 数据的维数为 35 包含大约 30 000 个数据点 我之前用这个数据集在 Matlab 中训练过决策树 大约花了 20 秒 由于对错误率不太满意 我决定尝试 SVM 我第一次尝试svm
  • 了解 SVR scikit-learn 中收敛所需的迭代次数

    我正在尝试优化 SVR 模型 但由于过度拟合而面临问题 为了克服这个问题 我尝试减少迭代次数 而不是等到收敛为止 为了比较这两个模型 我需要两种情况的迭代次数 如何知道在开放的情况下 max iter 1 收敛所需的迭代次数 这是我的代码
  • 文本分类方法?支持向量机和决策树

    我有一个训练集 我想使用分类方法根据我的训练集对其他文档进行分类 我的文档类型是新闻 类别是体育 政治 经济等 我完全理解朴素贝叶斯和KNN 但是SVM和决策树很模糊 我不知道我是否可以自己实现这个方法 或者有使用这种方法的应用程序吗 我可
  • 如何使用SVM求精确率、召回率、准确率?

    重复计算 Precision Recall 和 F Score https stackoverflow com questions 16927964 how to calculate precision recall and f score

随机推荐

  • FHD、4K、8K为何物

    转自 http www 4k123 com thread 145 1 1 html 近段时间 分辨率是一个很热的话题 4K与8K两个词频繁曝光于各大行业网站 8月23日 联合国旗下的国际电讯联盟通过以日本NHK电视台所建议的7680x432
  • Springboot2.0快速入门(第一章)

    目录 一 SpringBoot简介 1 1 回顾什么是Spring 1 2 Spring是如何简化Java开发的 1 3 什么是SpringBoot 二 Hello World 2 1 准备工作 2 2 创建基础项目说明 2 3 创建第一个
  • CoreML模型分析

    准备工作 首先得有一个Xcode以及一个简单的添加了CoreMLFramework的工程 下载模型 如官方推荐的MobileNetV2 将模型导入到工程中 并添加到你的编译项目中 双击打开 会看到这么一个页面 5 然后点击 就可以进入到模型
  • rust核心语法

    一 强类型语言 自动判断定义的变量类型 let a 323 不可变整形变量 let mut a 323 可变整形变量 变量声明方式 let a u64 323 不声明会被默认 二 表达式 1 可以在一个用 包括的块里编写一个较为复杂的表达式
  • react-container-query

    1 媒体查询 响应式组件 2 使用方法 1 引入 import ContainerQuery from react container query 2 规定屏幕尺寸 媒体查询 const query screen xs maxWidth 5
  • mysql强制指定查询使用的索引

    语法 select from table name force index index name where conditions 例如 mysql强制使用指定索引查询 SELECT FROM yrd pay flow FORCE INDE
  • 图解Netty之Pipeline、channel、Context之间的数据流向。

    以下所绘制图形均基于Netty4 0 28版本 一 connect outbound类型事件 当用户调用channel的connect时 会发起一个outbound类型的事件 该事件将在pipeline中传递 pipeline connec
  • PAT 乙级 1035 插入与归并 (C语言)

    题目 根据维基百科的定义 插入排序是迭代算法 逐一获得输入数据 逐步产生有序的输出序列 每步迭代中 算法从输入序列中取出一元素 将之插入有序序列中正确的位置 如此迭代直到全部元素有序 归并排序进行如下迭代操作 首先将原始序列看成 N 个只包
  • SetupSTM32CubeProgrammer安装教程

    SetupSTM32CubeProgrammer安装教程 下载地址 ST官方网站 链接 link https www st com en development tools stm32cubeprog html 环境准备 笔主是下载好就开始
  • Java 多线程共享模型之管程(上)

    主线程与守护线程 默认情况下 Java 进程需要等待所有线程都运行结束 才会结束 有一种特殊的线程叫做守护线程 只要其它非守护线程运行结束了 即使守护线程的代码没有执行完 也会强制结束 package Daemon import lombo
  • 系统分析师案例题【数据库篇】

    目录 1 规范化与反规范化 1 1 数据库设计过程 1 2 范式 1 3 反规范化 2 数据库索引 3 数据库视图 4 分区分表分库 5 分布式数据库系统 6 NoSQL 7 联邦数据库系统 8 数据库的性能优化 9 大数据 1 规范化与反
  • Java之网络编程

    文章目录 1 B S和C S架构 1 1B S架构 1 2C S架构 2 http协议 2 1http协议的特点 2 2http请求格式 2 3http响应格式 3 UDP协议 4 TCP协议 DNS域名解析 6 socket 6 1Ine
  • 问题:pycharm里面调用mysql失败

    项目场景 pycharm调用mysql的时候 连接数据库错误 排除密码 账户 语句等常规错误 问题 Could not connect server may not be running import pymysql 建立数据库连接 con
  • Dirty cow提权(脏牛)CVE-2016-5195 演示

    漏洞原理 脏牛 Linux内核的内存子系统在处理写入时复制时产生了竞争条件 指的是任务执行顺序异常 导致应用崩溃或者使得攻击者利用其漏洞进一步执行其他代码 最终攻击者可对其目标进行提权获得root权限 提权 下载EXP root kali
  • Spring Security OAuth2.0(二)-----简化模式/密码模式/客户端模式/刷新 token

    简化模式 代码示例 修改authorization server授权服务模块 新增 implicit 和修改回调地址为本次地址 修改第三方应用项目搭建新页面模拟 新建implicit jsp
  • 如何搭建个人博客网站【图/文教程】

    一 个人博客网站 大多人都用过一些社交平台上的博客 如QQ空间 新浪微博 网易博客等等 但这些大多都是面向大众平台 而且不是自己独有 自由的博客 想搭建一个属于自己的博客网站 其实很简单 那么这篇文章会教会你如何进行搭建 二 介绍一些开源免
  • Yolov8网络详解与实战(附数据集)

    文章目录 摘要 模型详解 C2F模块 Loss head部分 模型实战 训练COCO数据集 下载数据集 COCO转yolo格式数据集 适用V4 V5 V6 V7 V8 配置yolov8环境 训练 断点训练 测试 训练自定义数据集 Label
  • 回发或回调参数无效,如何解决

    回发或回调参数无效 在配置中使用
  • 【MyIbatis】MyBatis 核心配置综述之Executor

    1 概述 转载 MyBatis 核心配置综述之Executor 上一篇我们对SqlSession和SqlSessionFactory的创建过程有了一个详细的了解 但上述的创建过程只是为SQL执行和SQL映射做了基础的铺垫而已 就和我们Spr
  • 笔记:深度学习与有向无环图SVM结合用于年龄估计的局部调整

    阅读论文 Combined Deep Learning With Directed Acyclic Graph SVM for Local Adjustment of Age Estimation IEEE Journals Magazin