机器学习11-经典网络解析

news2025/3/5 21:39:35

机器学习11-经典网络解析

  • AlexNet
    • ImageNet 大规模视觉识别挑战赛
      • 一、赛事背景与目的
      • 二、数据集与任务设置
      • 三、参赛规则与流程
      • 四、评审标准与机制
      • 五、历史与影响
      • 六、中国团队的表现
    • 贡献
    • 解析
      • CONV1层
      • MaxP00L1层
      • NORM1层
      • CONV2层
    • CONV3、CONV4层
    • CONV4,Max POOL3 层
    • FC6、FC7、FC8层
  • 总结
  • ZFNet
  • VGG
    • VGG网络贡献:
    • VGG16
    • 思考
  • GoogleNet
    • Inception结构
      • 一、Inception结构简介
      • 二、Inception结构的核心组件
      • 三、Inception结构的演变版本
      • 四、Inception结构的设计原则
      • 五、Inception结构的应用与影响
  • ResNet
    • ResNet具有以下贡献:
    • 残差模块
    • 为什么残差网络性能这么好?
      • 1. 解决梯度消失和梯度爆炸问题
      • 2. 简化优化问题
      • 3. 提高训练效率和收敛速度
      • 4. 强大的特征提取能力
      • 5. 良好的泛化能力
      • 6. 灵活的网络结构
      • 7. 信息流的高效传递
  • 总结

AlexNet

在这里插入图片描述
2012年ImageNet 大规模视觉识别挑战赛冠军,精度提升超过10%。
ImageNet大规模视觉识别挑战赛(ImageNet Large Scale Visual Recognition Challenge,简称ILSVRC)是全球计算机视觉领域最具影响力的竞赛之一。以下是对该挑战赛的详细介绍:

ImageNet 大规模视觉识别挑战赛

一、赛事背景与目的

ILSVRC诞生于计算机视觉领域发展的关键时期,旨在推动图像识别技术的进展和发展。通过该挑战赛,研究人员能够测试并展示最新的计算机视觉算法和技术,为全球AI研究团队提供一个公平竞争的平台。

二、数据集与任务设置

  1. 数据集:ImageNet数据集是ILSVRC的核心,由斯坦福大学的Fei-Fei Li教授及其团队开发。该数据集包含超过1400万张标注图像,涵盖超过20000个类目,为研究人员提供了训练深度学习模型的基础。
  2. 任务设置:ILSVRC设置了多个任务,涵盖计算机视觉中的核心问题,包括图像分类、目标检测、图像定位以及场景分类等。参赛者需要针对这些任务开发模型,并在提供的数据集上进行训练和测试。

三、参赛规则与流程

  1. 报名注册:参赛者需在ILSVRC官网上注册,提供团队信息及相关资质验证。
  2. 下载数据集:报名成功后,团队将获得ImageNet数据集的使用许可,并下载数据集用于模型训练。
  3. 模型训练:参赛者可以利用自有的计算资源或通过云计算平台训练模型。
  4. 结果提交:在规定时间内,参赛者需要通过官网提交模型的结果文件进行评审。

四、评审标准与机制

ILSVRC的评审机制十分严格,主要通过自动化评审系统对提交的模型进行测试。评审标准包括Top-1错误率、Top-5错误率、平均精度(Mean Average Precision, mAP)以及召回率与精确率等。这些指标能够全面评估模型在图像分类、目标检测等任务上的性能。

五、历史与影响

  1. 历史突破:自2010年首次举办以来,ILSVRC见证了多项技术突破。其中,2012年由Geoffrey Hinton、Ilya Sutskever和Alex Krizhevsky提出的AlexNet模型首次将深度卷积神经网络应用于图像分类任务,并以大幅降低Top-5错误率的成绩赢得比赛。这一胜利引发了全球范围内对深度学习的研究热潮。
  2. 影响力:ILSVRC不仅推动了计算机视觉领域的飞速发展,还为深度学习的崛起奠定了基础。多年来,该挑战赛涌现出了一批著名的参赛团队和技术突破,如GoogLeNet、ResNet和EfficientNet等。这些技术创新不仅赢得了比赛,还广泛应用于现实世界中的图像识别、自动驾驶、医疗影像分析等领域。

六、中国团队的表现

在ILSVRC的历史上,中国团队也取得了显著的成绩。例如,在2016年的挑战赛中,来自中国的团队包揽了多个项目的冠军,展示了中国在计算机视觉领域的研究实力和技术水平。

综上所述,ImageNet大规模视觉识别挑战赛作为计算机视觉领域的标志性赛事,不仅推动了深度学习技术的突破,还培养了众多卓越的研究团队。未来,随着AI技术的不断进步,类似ILSVRC的赛事将继续推动技术创新,为各行各业带来更加智能化的解决方案。

在这里插入图片描述

贡献

AlexNet一一验证了深度卷积神经网络的高效性
主体贡献
1.提出了一种卷积层加全连接层的卷积神经网络结构
2. 首次使用ReLU函数做为神经网络的激活函数
3.首次提出Dropout正则化来控制过拟合
4.使用加入动量的小批量梯度下降算法加速了训练过程的收敛;
5.使用数据增强策略极大地抑制了训练过程的过拟合;
6.利用了GPU的并行计算能力,加速了网络的训练与推断。

解析

CONV1层

在这里插入图片描述

MaxP00L1层

MaxP00L1层:窗口大小3x3,步长为2( 重叠有助于对抗过拟合)
作用:降低特征图尺寸,对抗轻微的目标偏移带来的影响
输出尺寸: (55-3) /2+1 = 27
特征图个数:96
参数个数:0

NORM1层

局部相应归一化层(NORM1)作用

  • 对局部神经元的活动创建竞争机制;
  • 响应比较大的值变得相对更大;
  • 抑制其他反馈较小的神经元;
  • 增强模型的泛化能力
    但是后来的研究表明:更深的网络中该层对分类性能的提升 效果并不明显,且会增加计算量与存储空间。

CONV2层

第二层(C0NV2):256个5x5卷积核(相当于在原图上用50×50卷积核去做卷积,增大了识别特征的概率,并缩减计算量,卷积结合律的好处),步长为1,使用零填充p=2
问题:输入:27x27x96大小的特征图组,输出特征图个数及尺寸为多少?
尺寸:(27-5+2*2)/1+1=27
个数:256

为什么不是256×96个?
输入特征图的通道数:输入特征图的通道数(例如RGB图像的3个通道,或上述中的96个通道)影响的是卷积核的深度(或称为卷积核的通道数)。每个卷积核的深度必须与输入特征图的通道数相匹配,以便能够正确地与输入特征图进行卷积操作。但是,这并不影响输出特征图的数量;它只影响卷积核本身的结构。

CONV3、CONV4层

第三、四层(CONV3、CONV4):384个3x3卷积核,步长为1,使用零填充p=1
问题:C0NV3输入:13x13x256大小的特征图组,输出特征图个数及尺寸为
多少?
尺寸:(13-3+2*1)/1+1=13
个数:384

CONV4,Max POOL3 层

第五层(CONV5):256个3x3卷积核,步长为1,使用零填充p=1
最大池化层来进一步缩小特征图尺寸

FC6、FC7、FC8层

(FC6、FC7、FC8):全连接神经网络分类器
MAXP00L3的输出:特征响应图组,展开为6×6×256=9216维向量
FC6输入:9216维向量
输出:图像类别概率
在这里插入图片描述

总结

  • 用于提取图像特征的卷积层以及用于分类的全连接层是同时学习的;
  • 卷积层与全连接层在学习过程中会相互影响、相互促进
  • 重要技巧:
    Dropout策略防止过拟合;
    使用加入动量的随机梯度下降算法,加速收敛;
    验证集损失不下降时,手动降低10倍的学习率;
    采用样本增强策略增加训练样本数量,防止过拟合
    集成多个模型,进一步提高精度
    在这里插入图片描述

ZFNet

在这里插入图片描述

与AlexNet网络结构基本一致!
主要改进:
将第一个卷积层的卷积核大小改为了7×7;
将第二、第三个卷积层的卷积步长都设置为2;
增加了第三、第四个卷积层的卷积核个数

VGG

在这里插入图片描述

VGG网络贡献:

使用尺寸更小的3x3卷积核串联来获得更大的感受野;
放弃使用11x11和5x5这样的大尺寸卷积核
深度更深、非线性更强,网络的参数也更少;
去掉了AlexNet中的局部响应归一化层(LRN)层。

VGG16

  • 13个卷积层与3个全连接
  • 分为5段conv1,…",conv5,每一段中卷积层的卷积核个数均相同
  • 所有卷积层均采用3x3的卷积核及ReLU激活函数;
  • 所有的池化层都采用最大池化,其窗口大小为2x2、步长为2;
  • 经过一次池化操作,其后卷积层的卷积核个数就增加一倍,直至到达512;

思考

问题:小卷积核有哪些优势?

在这里插入图片描述
假设卷积层输入和输出的特征图个数均为C:
三个3×3的卷积串联参数个数
(3×3×C)×C×3=27C^2
一个7×7的卷积层卷积参数个数
(7×7×C)×C=49C^2

**回答:**多个小尺寸的卷积核串联可以得到与大尺寸卷积核相同的感受野。使用小卷积核串联构成的网络深度更深,非线性更强,参数也更少。

**问题2:**为什么VGG网络前四段里,每经过一次池化操作,卷积核个数就增加一倍?
回答:
1.池化操作可以减小特征图尺寸,降低显存占用
2.增加卷积核个数有助于学习更多的结构特征,但会增加网络参数数量以及内存消耗
3.一减一增的设计平衡了识别精度与存储、计算开销
最终提升了网络性能!

**问题3:**为什么卷积核个数增加到512后就不再增加了?
回答:
1.第一个全连接层含102M参数,占总参数个数的74%;
2.这一层的参数个数是特征图的尺寸与个数的乘积;
3.参数过多容易过拟合,且不易被训练
如将最后一层卷积核个数增加至1024,这一层参数个数为:771024*4096=205,520,896≈200M

GoogleNet

在这里插入图片描述
GoogleNet的创新点:

  • 提出了一种Inception结构,它能保留输入信号中的更多特征信息。
  • 去掉了AlexNet的前两个全连接层,并采用了平均池化这一设计使得Google Net只有500万参数。比AlexNet变小了两倍。
  • 在网络的中部加入了辅助分类器,克服了训练过程中的梯度消失问题。

Inception结构

网络中串联结构存在的问题----后面的卷积层只能处理前层输出的特征图,前层因某些原因,(比如感受野的限制)丢失了某些重要信息后层无法进行找回。
在这里插入图片描述
Inception结构是由Google开发的一种深度卷积神经网络架构,旨在解决计算机视觉领域中的图像分类和物体识别任务。以下是对Inception结构的详细介绍:

一、Inception结构简介

Inception结构最初在2014年被提出,并在ImageNet图像分类挑战赛上取得了显著成果。其设计灵感来源于模块化的思想,将不同尺度和不同层级的滤波器并行应用于输入,然后将它们的输出在通道维度上拼接在一起,形成了一个多分支的结构。这种并行使用不同卷积核尺寸的方式可以捕捉到不同尺度的图像特征,提高了网络对输入图像的理解能力。

二、Inception结构的核心组件

Inception模块是Inception架构的核心组件,它由多个并行的分支组成。每个分支都使用不同大小的卷积核进行卷积操作,例如1×1、3×3和5×5的卷积核。此外,为了减少参数数量和计算复杂度,每个分支都会在输入前使用1×1的卷积核进行降维处理。除了卷积层之外,Inception模块还包括池化层,可以帮助减小特征图的空间尺寸,从而提高计算效率和减少过拟合的风险。

三、Inception结构的演变版本

  1. Inception v1(GoogLeNet):首次引入了Inception模块,该模块通过并行使用不同大小的卷积核和池化操作来捕获不同尺度的特征。为了减小计算量,GoogLeNet采用了1×1卷积作为“瓶颈层”来降低特征的通道数。
    在这里插入图片描述

  2. Inception v2:在v1的基础上引入了批量归一化(Batch Normalization),这有助于加速训练并提高模型的泛化能力。同时,v2还使用了小卷积核替代大卷积核,以进一步减少参数数量和计算复杂度。

  3. Inception v3:整合了Inception v2的特点,并进行了更多改进。例如,不再直接使用max pooling层进行下采样,而是设计了两个并行的分支(一个是pooling层,另一个是卷积层),最后将两者结果拼接在一起。此外,还使用了RMSProp优化器和Factorized 7×7卷积等。

  4. Inception v4:引入了一个新的stem模块,该模块放在Inception块之间执行。同时,Inception v4重新提出了三种新的Inception模块(A、B和C)。此外,还引入了专用的“缩减块”(reduction block),用于改变网格的宽度和高度。

四、Inception结构的设计原则

  1. 避免表征瓶颈:特别是在网络早期,应避免使用极端压缩导致的瓶颈。表征规模应平缓地从输入向输出递减,直到最终任务。
  2. 更高维度的表征:更容易在一个网络内本地化处理。在卷积网络中加大每层的激活能获得更多的非纠缠特征,可使网络训练更快速。
  3. 空间聚合:可以在更低维度嵌入上进行,不会损失或损失太多的体现能力。例如在进行3×3卷积之前,可以在空间聚合之前降低输入表征。
  4. 平衡网络的宽度和深度:通过平衡每阶段的过滤器数量和网络深度,可以实现网络的优化表现。同时提高宽度和深度可以提高网络质量,但只有在并行提高时才能对计算常量进行优化提升。
  5. 在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

问题1:平均池化向量化与直接展开向量化有代么区别

在这里插入图片描述
AlexNet直接将卷积层输出的特征图矩阵展开得到的图像向量;而GoogLeNet首先对卷积层输出的特征图进行平均池化,这样每个特征图变成一个实数,然后将实数连起来组成图像向量。直观上,GoogLeNet的这种方式一定会丢失信息,那么,它到底丢失了什么信息,这些丢失的信息对最终的分类性能有什么影响?这是我们关注的问题。前面我们介绍过特征响应图上每个位置的值反应了图像对应位置的结构与卷积核记录的语义结构的相似程度。而经过平均池化后得到的实数仅体现了图像中的结构与卷积核记录的语义结构的相似程度,却不能反映该语义结构在图像中的位置。因此,平均池化丢失的是语义结构的空间位置信息。不过,对分类任务而言,忽略语义结构的位置信息,有助于提升卷积层提取到的特征的平移不变性。比如图像中有一了网络的平移不变性。

问题二:利用1×1的卷积进行压缩会损失信息吗?
在这里插入图片描述
那么这种压缩是否会损失信息呢?我们以此图为例分析一下这个压缩操作。1×1卷积核的卷积操作主要是对特征图组中同一个位置不同响应值进行非线性操作。以图中位置A为例,这个64维向量代表了前层的64个卷积核在位置A的响应。一般来说,神经网络中同一层的不同
卷积核会记录不同的局部结构:而输入图像中A对应的位置上只会有一种结构。所以,位置A的64个响应值中只有少数几个会有值,大部分都是0。换句话说,位置A的这个64维向量是一个非常稀疏向量,所以,利用1x1卷积进行非线性压缩通常不会损失信息。

五、Inception结构的应用与影响

Inception网络在计算机视觉领域得到了广泛应用,被用于图像分类、目标检测、图像生成等任务。其设计思想和结构对深度学习模型的发展和优化产生了重要影响和贡献。

综上所述,Inception结构是一种具有创新性和实用性的深度卷积神经网络架构,通过并行使用不同尺度的卷积核和池化操作,以及引入批量归一化、小卷积核替代大卷积核等改进方法,提高了网络对输入图像的理解能力和计算效率。

ResNet

持续向一个基础的卷积神经网络上叠加更深的层数会发生什么?在这里插入图片描述
猜测: 加深网络层数引起过拟合,在训练集上错误率降低,在测试集上导致错误率上升。

但是事实却是无论是训练集还是测试集,错误率都在上升。那么这是为什么呢?
原因就是在训练过程中网络的正反向信息流动不通畅,I导致网络没有被充分的训练。

ResNet具有以下贡献:

  • 提出了一种残差模块,通过堆叠残差模块可以构建任意深度的神经网络,而不会出现“退化”现象。
  • 提出了批归一化方法来对抗梯度消失,该方法降低了网
  • 络训练过程对于权重初始化的依赖;
  • 提出了一种针对ReLU激活函数的初始化方法;

残差模块

在这里插入图片描述

研究者考虑了这样一个问题:浅层网络学习到了有效的分类模式后,如何向上堆积新层来建立更深的网络,使其满足即使不能提升浅层网络的性能,深层网络也不应降低性能。

解决方案:残差模块
假设卷积层学习的变换为F(X),残差结构的输出是H(X),则有:

在这里插入图片描述

在这里插入图片描述
关于残差结构:
在这里插入图片描述
1.残差结构能够避免普通的卷积层堆叠存在信息丢失问题,保证前
向信息流的顺畅。
2.残差结构能够应对梯度反传过程中的梯度消失问题,保证反向梯
度流的通顺。

在这里插入图片描述
其他关键点:

  • 提出了批归一化策略,降低了网络训练过程对于权重初始化的依赖
  • 提出了针对ReLU非线性单元的初始化方法

为什么残差网络性能这么好?

在这里插入图片描述残差网络可以看作是一种集成模型。

1. 解决梯度消失和梯度爆炸问题

残差网络通过引入残差块和跳跃连接(skip connection),允许梯度在反向传播时直接流向前面的层。这种设计有效缓解了传统深度网络中常见的梯度消失和梯度爆炸问题,使得训练非常深的网络(如152层的ResNet)成为可能。

2. 简化优化问题

残差网络的核心思想是学习输入与期望输出之间的残差,而不是直接学习完整的映射。这种残差学习方式使得网络更容易优化,因为残差通常比完整的映射更小,且更易于拟合。此外,跳跃连接使得网络可以轻松学习恒等函数,即使增加更多层也不会降低网络性能。

3. 提高训练效率和收敛速度

由于梯度可以直接传播,ResNet可以在训练过程中使用更大的学习率,并且能够更快地收敛。这种高效的训练方式使得ResNet在大规模数据集上表现出色,能够更快地达到较高的准确率。

4. 强大的特征提取能力

ResNet通过深层网络学习到更复杂的特征表示,从而在图像分类、目标检测等任务中表现出色。其多尺度特征学习能力也使其能够更好地处理不同复杂度的任务。

5. 良好的泛化能力

尽管ResNet是一个非常深的网络,但其设计使得它在训练过程中能够保持良好的泛化能力,不会轻易过拟合。这使得ResNet不仅在训练集上表现优异,同时也能在测试集上保持较高的性能。

6. 灵活的网络结构

ResNet的结构可以根据任务需求灵活调整,例如通过增减残差块的数量来适应不同的数据集和任务。这种灵活性使得ResNet在多种应用场景中都能发挥出色的效果。

7. 信息流的高效传递

跳跃连接不仅解决了梯度问题,还使得输入信息可以直接流向深层网络,避免了信息在多层传递中的丢失。这种高效的信息流传递方式进一步提升了网络的性能。

综上所述,残差网络通过解决梯度问题、简化优化过程、提高训练效率和保持良好的泛化能力,使其在深度学习领域表现出色,成为许多任务的首选网络架构。

总结

  • 介绍了5种经典的卷积神经网络AlexNet、ZFNet、VGG、GoogLeNet和ResNet
  • 残差网络和lnceptionV4是公认的推广性能最好的两个分类模型
  • 特殊应用环境下的模型:面向有限存储资源的SqueezeNet以及面向有限计算资源的MobileNet和ShuffleNet

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

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

相关文章

【数据结构】链表与顺序表的比较

链表和顺序表是两种常见的数据结构,各有优缺点,适用于不同的场景。 ### 顺序表(数组) 顺序表在内存中连续存储元素,支持随机访问。 **优点:** 1. **随机访问**:通过索引直接访问元素&#xf…

【JavaScript—前端快速入门】JavaScript 基础语法

JavaScript 基础语法 1. 变量 创建变量(变量定义 / 变量声明 / 变量初始化),JS 声明变量有3种方式 2. 通过打印日志,查看变量类型 JavaScript 是一门动态弱类型语言,变量可以存放不同类型的值(动态) 接下来,我们通过使用 log 指令…

deepseek助力运维和监控自动化

将DeepSeek与Agent、工作流及Agent编排技术结合,可实现IT运维与监控的智能化闭环管理。以下是具体应用框架和场景示例: 一、智能Agent体系设计 多模态感知Agent 日志解析Agent:基于DeepSeek的NLP能力,实时解析系统日志中的语义&a…

springboot在业务层校验对象/集合中字段是否符合要求

springboot在业务层校验对象参数是否必填 1.场景说明2.代码实现 1.场景说明 为什么不在控制层使用Validated或者Valid注解直接进行校验呢?例如通过excel导入数据,将excel数据转为实体类集合后,校验集合中属性是否符合要求。 2.代码实现 定义…

【UCB CS 61B SP24】Lecture 17 - Data Structures 3: B-Trees 学习笔记

本文以 2-3-4 树为例详细讲解了 B 树的概念,逐步分析其操作,并用 Java 实现了标准的多阶 B 树。 1. 2-3 & 2-3-4 Trees 上一节课中讲到的二叉搜索树当数据是随机顺序插入的时候能够使得树变得比较茂密,如下图右侧所示,时间复…

论文阅读笔记:UniFace: Unified Cross-Entropy Loss for Deep Face Recognition

论文阅读笔记:UniFace: Unified Cross-Entropy Loss for Deep Face Recognition 1 背景2 创新点3 方法3.1 回顾softmax损失3.2 统一交叉熵损失3.3 人脸验证中的UCE损失3.4 进一步的优化3.4.1 边际UCE损失3.4.2 平衡BCE损失 4 实验4.1 消融实验4.2 和SOTA方法对比 论…

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(十) 收发消息

1.聊天框 首先我们完善前端的消息输入框 components下面新建MessageInput组件 import { useState,useRef } from "react" import {X,Image,Send} from "lucide-react"import { useChatStore } from "../store/useChatStore" import toast from…

5分钟看懂Deepseek开源周之六:Deepseek-V3/R1推理系统设计----揭开深度求索模型系统设计和运营成本之谜

前言 众所周知,四大天王一般有五个人。所以开源周五连发有第六天也很正常。贴上了开源周活动的github主贴,大家可以不上推特就能了解详情。 deepseek-ai/open-infra-index: Production-tested AI infrastructure tools for efficient AGI development a…

C++发展

目录 ​编辑C 的发展总结:​编辑 1. C 的早期发展(1979-1985) 2. C 标准化过程(1985-1998) 3. C 标准演化(2003-2011) 4. C11(2011年) 5. C14(2014年&a…

动态规划/贪心算法

一、动态规划 动态规划 是一种用于解决优化问题的算法设计技术,尤其适用于具有重叠子问题和最优子结构性质的问题。它通过将复杂问题分解为更简单的子问题,并保存这些子问题的解以避免重复计算,从而提高效率。 动态规划的核心思想 最优子结…

python全栈-Linux基础

python全栈-Linux基础 文章目录 Linux安装/配置网络配置配置Linux远程登录配置虚拟机内部ip配置真机的ip安装XShell和Xftp目录结构用户和用户组用户管理添加用户useradd查看用户id修改用户usermod (选项)(参数)用户密码设置passed (选项)(参数)删除用户userdel [选项] 用户名 用…

基于https虚拟主机配置

一、https介绍 http 明文,80/tcp https 密文,443/tcp 二、安全性保障 1、数据安全性 数据加密 2、数据完整性 3、验证身份的真实性、有效性 三、数据安全性 手段:加密 发送方加密数据,接收方解密数据 对称加密算法 加密、解密数据…

Kmeans算法来实现RFM指标计算步骤

K-Means(K均值)是一种经典的无监督聚类算法,主要用于将数据集划分为 KKK 个不同的簇(Cluster)。 它基于最小化簇内样本的平方误差,即最小化数据点与簇中心的距离之和。 1. K-Means 算法原理 (1) 主要步骤 …

Vue2-3 优雅的在子组件修改父组件传递过来的v-model

在子组件修改父组件传递过来的v-model,这样会破坏单向数据流,造成屎山代码,为了避免这个问题,需要给一个中间层来相对舒服的使用v-model。方法就是用computed去拦截v-model,然后在computed 里面去触发 emit 事件来修改父组件传来的…

threejs:用着色器给模型添加光带扫描效果

第一步:给模型添加光带 首先创建一个立方体,不进行任何缩放平移操作,也不要set position。 基础代码如下: 在顶点着色器代码里varying vec3 vPosition;vPosition position;获得threejs自动计算的顶点坐标插值(也就…

1.从0搭建前端Vue项目工程

我们通过vue官方提供的脚手架Vue-cli来快速生成一个Vue的项目模板。 **注意:**需要先安装NodeJS,然后才能安装Vue-cli。 环境准备好了,接下来我们需要通过Vue-cli创建一个vue项目,然后再学习一下vue项目的目录结构。Vue-cli提供了…

开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享

OpenHarmony 5.0版本的发布时间是2024年12月20日至21日。这个版本带来了许多新特性和改进。现在5.0出了两个release 版本,分别是5.0.0和5.0.1。 就在5.0版本发布不到2周的时间内,2025年01月01日起,不支持新产品基于老分支(OpenHar…

Chromium_src源码

Chromium_src源码 码云上有一个OpenHarmony-TPC/chromium_src项目,目前已经停止维护了,迁移到GitCode上了,源代码项目地址为:openharmony-tpc/chromium_chrome 特此记录一下老的项目的相关软件架构 Chromium 简介 软件架构 软…

深度学习的正则化深入探讨

文章目录 一、说明二、学习目标三、什么是机器学习中的正则化四、了解过拟合和欠拟合五、代价函数的意义六、什么是偏差和方差?七、机器学习中的正则化? 一、说明 在训练机器学习模型时,模型很容易过拟合或欠拟合。为了避免这种情况&#xf…

《OpenCV》——dlib(人脸应用实例)

文章目录 dlib库dlib库——人脸应用实例——表情识别dlib库——人脸应用实例——疲劳检测 dlib库 dlib库的基础用法介绍可以参考这篇文章:https://blog.csdn.net/lou0720/article/details/145968062?spm1011.2415.3001.5331,故此这篇文章只介绍dlib的人…