InceptionV1_V2
目录
不同大小的感受野去提取特征
经典 Inception 网络的设计思路与运行流程
背景任务:图像分类(以 CIFAR-10 数据集为例)
Inception 网络的设计思路
Inception 网络的运行流程
打个比方
多个损失函数的理解
1. 为什么需要多个损失函数?
2. 如何实现多个损失函数?
结合图片
通俗一点
流程
inception_v2相较于v1
Inception_v2 相较于 Inception_v1 的改进
1. 引入 Batch Normalization(应该叫层标准化)
2. 分解大卷积核
3. 使用 1x1 卷积进行降维
4. 优化 Inception 模块
5. 减少计算量
Inception_v2 的网络结构
通俗一点
不同大小的感受野去提取特征
多路并行的训练,计算多个loss,用多个相同的块去重复
对于复杂网络架构的神经网络来说,反向传播过程中,靠近输入层的参数难调(存在梯度消失问题),靠近输出层的也难调(参数震荡幅度大,或者说相对幅度较大,因为最先)
|
|
|
经典 Inception 网络的设计思路与运行流程
背景任务:图像分类(以 CIFAR-10 数据集为例)
CIFAR-10 是一个包含 10 类彩色图像的数据集,每张图像大小为 32x32。我们的任务是训练一个模型,能够准确分类这些图像。
Inception 网络的设计思路
Inception 网络的核心思想是 “多尺度特征提取”。传统的卷积网络通常在同一层只使用一种尺寸的卷积核(如 3x3 或 5x5),而 Inception 网络在同一层中并行使用多种尺寸的卷积核(如 1x1、3x3、5x5),并通过 1x1 卷积核进行降维和特征融合。这种设计可以捕捉不同尺度的特征,同时减少计算量。
1. 多尺度卷积
- Inception 模块在同一层中并行使用:
- 1x1 卷积:捕捉局部特征。
- 3x3 卷积:捕捉中等范围特征。
- 5x5 卷积:捕捉更大范围特征。
- 最大池化:保留最显著的特征。
- 这种设计让网络能够同时捕捉不同尺度的特征,提高特征提取的多样性。
2. 1x1 卷积降维
- 在 3x3 和 5x5 卷积之前,使用 1x1 卷积减少通道数,降低计算量。
- 1x1 卷积还可以增加非线性,提升模型的表达能力。
3. 特征融合
- 将不同尺度的卷积结果在通道维度上拼接(concat),融合多尺度特征。
- 这种融合方式让网络能够综合利用不同层次的信息。
Inception 网络的运行流程
以下是一个简化的 Inception 模块在 CIFAR-10 分类任务中的运行流程:
1. 输入层
- 输入图像:32x32x3(CIFAR-10 的图像尺寸)。
2. 初始卷积层
- 使用一个 7x7 卷积层提取低级特征(如边缘、颜色)。
- 输出特征图:32x32x64。
3. Inception 模块
- 分支 1:1x1 卷积
- 使用 1x1 卷积提取局部特征。
- 输出特征图:32x32x64。
- 分支 2:3x3 卷积
- 先使用 1x1 卷积降维,再使用 3x3 卷积提取中等范围特征。
- 输出特征图:32x32x128。
- 分支 3:5x5 卷积
- 先使用 1x1 卷积降维,再使用 5x5 卷积提取更大范围特征。
- 输出特征图:32x32x32。
- 分支 4:最大池化
- 使用 3x3 最大池化保留显著特征,再通过 1x1 卷积调整通道数。
- 输出特征图:32x32x64。
- 特征融合
- 将四个分支的输出在通道维度上拼接。
- 最终输出特征图:32x32x288(64+128+32+64)。
4. 重复 Inception 模块
- 堆叠多个 Inception 模块,逐步提取更高级的特征。
- 每个模块的输出特征图尺寸逐渐减小,通道数逐渐增加。
5. 全局平均池化
- 使用全局平均池化将特征图压缩为固定长度的特征向量。
- 输出特征向量:288 维。
6. 全连接层
- 添加一个全连接层,将特征向量映射到 10 个类别(CIFAR-10 的 10 类)。
- 使用 Softmax 激活函数输出类别概率。
打个比方
想象一下,Inception 网络就像一个 多功能的侦探团队:
- 1x1 卷积:像是一个“细节专家”,专注于捕捉图像的局部细节(如边缘、颜色)。
- 3x3 卷积:像是一个“区域侦探”,负责分析中等范围的特征(如形状、纹理)。
- 5x5 卷积:像是一个“全局侦探”,负责捕捉更大范围的特征(如对象整体)。
- 最大池化:像是一个“总结专家”,负责保留最显著的特征。
这些侦探各自独立工作,然后将他们的发现(特征)汇总到一起,形成一个全面的报告(多尺度特征融合)。最后,这个报告被送到“决策层”(全连接层),由它来判断图像属于哪一类。
多个损失函数的理解
1. 为什么需要多个损失函数?
- 梯度消失问题:在深层网络中,梯度在反向传播过程中可能会逐渐变小,导致靠近输入层的参数更新缓慢,训练效果不佳。
- 更好的梯度传播:通过在网络的中间层添加辅助分类器,可以引入额外的损失函数,帮助梯度更好地传播到浅层,缓解梯度消失问题。
- 正则化效果:多个损失函数可以看作一种正则化方法,防止网络过拟合。
2. 如何实现多个损失函数?
- 辅助分类器:在网络的中间层(如 Inception 模块的某些阶段)添加一个额外的全连接层和 Softmax 层,用于计算辅助损失。
- 总损失:将主分类器的损失和辅助分类器的损失加权求和,作为最终的总损失。
结合图片
Inception 网络的结构中可能包含以下部分:
- 主分类器:
- 通过多个卷积层(如 1x1、3x3、5x5)提取特征。
- 使用全局平均池化或全连接层(FC)生成最终的分类结果。
- 计算主损失(如交叉熵损失)。
- 辅助分类器:
- 在网络的中间层(如某个 Inception 模块后)添加一个辅助分类器。
- 辅助分类器通常包括:
- 一个 1x1 卷积层(用于降维)。
- 一个全连接层(FC)。
- 一个 Softmax 层(用于计算类别概率)。
- 计算辅助损失(如交叉熵损失)。
- 总损失:
- 将主损失和辅助损失加权求和,作为最终的总损失。
- 公式:总损失 = 主损失 + α * 辅助损失,其中 α 是一个权重系数(通常为 0.3 或 0.5)。
通俗一点
Inception 网络比作一个 多层级的工厂生产线:
- 主分类器:是最终的质检部门,负责对成品(最终特征)进行检查,判断产品是否合格(分类是否正确)。
- 辅助分类器:是中间环节的质检员,负责在半成品(中间特征)阶段进行检查,确保每个环节的质量。
如果在中间环节发现问题(辅助损失),工厂可以及时调整生产流程(更新网络参数),而不是等到最终环节才发现问题(主损失)。这种方式可以提高整体生产效率(训练效果),并减少次品率(过拟合)。
流程
- 输入图像:
- 输入图像经过多个卷积层和 Inception 模块,提取特征。
- 辅助分类器 1:
- 在某个中间层(如第 4 个 Inception 模块后)添加辅助分类器。
- 计算辅助损失 1。
- 辅助分类器 2:
- 在另一个中间层(如第 8 个 Inception 模块后)添加辅助分类器。
- 计算辅助损失 2。
- 主分类器:
- 在网络的最后,使用全局平均池化和全连接层生成最终分类结果。
- 计算主损失。
- 总损失:
- 将主损失和辅助损失加权求和,作为最终的总损失。
- 公式:总损失 = 主损失 + 0.3 * 辅助损失 1 + 0.3 * 辅助损失 2。
- 反向传播:
- 根据总损失更新网络参数,优化模型。
在inception网络里比较多的用交替训练或者total_loss,上面的流程是total_loss,而交替训练:先走input - loss0,再input - loss1..,最后input - loss_last,分块训练,使得前面的input(靠近输入层的数据)被更多的拟合
inception_v2相较于v1
新增BN:batch_normalization,层(批)归一化,在卷积层与池化层之间加入BN
Inception_v2 相较于 Inception_v1 的改进
Inception_v2 是 Inception 系列网络的第二个版本,相较于 Inception_v1(也称为 GoogLeNet),它引入了几项重要的改进,主要集中在 减少计算量 和 提高特征提取能力 上。
1. 引入 Batch Normalization(应该叫层标准化)
- 改进点:Inception_v2 在网络中广泛使用了 Batch Normalization(BN)。
数据分布的变化问题
在深层神经网络中,每一层的输入分布会随着训练的进行而发生变化,这种现象被称为 内部协变量偏移(Internal Covariate Shift)。具体来说:
- 每一层的参数更新会导致其输出的分布发生变化。
- 这种变化会传递到下一层,导致下一层的输入分布不稳定。
- 不稳定的输入分布会使得网络的训练变得困难,尤其是深层网络。
Batch Normalization (BN) 的本质
2. 分解大卷积核
- 改进点:将大的卷积核(如 5x5)分解为多个小的卷积核(如两个 3x3)。
- 作用:
- 两个 3x3 卷积核的堆叠可以模拟一个 5x5 卷积核的感受野,但参数数量和计算量更少。
- 增加了网络的非线性能力,因为每个卷积层后面都有激活函数。
- 通俗解释:
- 就像用两个小筛子(3x3)代替一个大筛子(5x5),虽然筛子的层数增加了,但整体效率更高,筛出的东西(特征)也更精细。
3. 使用 1x1 卷积进行降维
- 改进点:在 3x3 和 5x5 卷积之前,使用 1x1 卷积减少通道数。
- 作用:
- 1x1 卷积可以减少特征图的通道数,从而降低计算量。
- 同时,1x1 卷积可以增加非线性,提升模型的表达能力。
- 通俗解释:
- 1x1 卷积就像一个“压缩器”,它先把数据压缩一下,减少不必要的部分,然后再交给后面的工人(3x3 或 5x5 卷积)处理,这样既省力又高效。
4. 优化 Inception 模块
- 改进点:Inception_v2 对 Inception 模块进行了优化,使其更加高效。
- 具体优化:
- 使用更多的 1x1 卷积进行降维。
- 将 5x5 卷积分解为两个 3x3 卷积。
- 在模块中引入 BN 层。
- 通俗解释:
- 就像优化一个工厂的生产线,把复杂的工序拆分成更简单、更高效的步骤,同时加入质检员(BN)确保每一步的质量。
5. 减少计算量
- 改进点:通过上述方法,Inception_v2 显著减少了计算量。
- 作用:
- 使得网络在保持高性能的同时,计算效率更高。
- 更适合在资源有限的环境下运行。
- 通俗解释:
- 就像把一辆耗油的大卡车换成几辆节能的小车,虽然车多了,但整体油耗更低,运输效率更高。(连续使用小的卷积核的好处)
Inception_v2 的网络结构
简化的 Inception_v2 网络结构示例:
- 输入层:
- 输入图像:224x224x3。
- 初始卷积层:
- 使用 7x7 卷积层提取低级特征。
- 输出特征图:112x112x64。
- Inception 模块 1:
- 使用 1x1 卷积降维。
- 使用 3x3 卷积提取特征。
- 使用 BN 层加速训练。
- 输出特征图:56x56x192。
- Inception 模块 2:
- 使用 1x1 卷积降维。
- 使用两个 3x3 卷积代替 5x5 卷积。
- 使用 BN 层加速训练。
- 输出特征图:28x28x480。
- Inception 模块 3:
- 使用 1x1 卷积降维。
- 使用两个 3x3 卷积代替 5x5 卷积。
- 使用 BN 层加速训练。
- 输出特征图:14x14x832。
- 全局平均池化层:
- 将特征图压缩为固定长度的特征向量。
- 输出特征向量:1024 维。
- 全连接层:
- 添加一个全连接层,将特征向量映射到类别数(如 1000 类)。
- 使用 Softmax 激活函数输出类别概率。
通俗一点
Inception_v2 相较于v1好比一个 升级版的工厂:
- BN 工人:确保每个环节的输入都在合理范围内,提高整体效率。
- 小筛子(3x3 卷积):代替大筛子(5x5 卷积),既省力又高效。
- 压缩器(1x1 卷积):先把数据压缩一下,减少不必要的部分,提高处理效率。
- 优化生产线(Inception 模块):把复杂的工序拆分成更简单、更高效的步骤,同时加入质检员(BN)确保每一步的质量。
Inception_v2 引入了 BN,通过批标准化策略,将每一层的输入分布调整为均值为 0、标准差为 1 的分布。这种操作稳定了数据在浅层向深层传递的过程,使得每一层的输入分布更加一致,从而更好地保留了数据间的内部关系。
BN 有效缓解了随着网络加深而出现的梯度消失问题。梯度消失的原因在于,如果不使用 BN,每一层的输入分布可能会随着训练发生变化,导致激活函数的输入值落入饱和区(如 Sigmoid 函数的两端),使得梯度在反向传播过程中逐渐变小,最终导致梯度消失。BN 通过稳定输入分布,使得激活函数的输入值落在其敏感区间内,从而避免了梯度饱和,缓解了梯度消失问题。
相关文章:
InceptionV1_V2
目录 不同大小的感受野去提取特征 经典 Inception 网络的设计思路与运行流程 背景任务:图像分类(以 CIFAR-10 数据集为例) Inception 网络的设计思路 Inception 网络的运行流程 打个比方 多个损失函数的理解 1. 为什么需要多个损失函数&#…...
面向对象设计原则
面向对象最大的优势是抵御变化 理解隔离变化: 从宏观面来看,面向对象构建方式更能适应软件的变化,能将变化所带来的影响减为最少。 各司其职:从微观层面来看,面向对象的方式更强调各个类的责任。由于需求变化导致的新…...
近年流行的开发技术
Web 开发领域 前端技术 HTML5、CSS3 和 JavaScript HTML5:作为网页结构的基础,引入了新的语义化标签(如<header>、<nav>、<article>等),增强了网页的可读性和搜索引擎优化效果,同时支持…...
Go语言中的Select
Select 在 Go 语言中,select 是一种用于处理多个通道操作的控制结构。它允许你同时监听多个通道上的通信操作(发送或接收),并根据哪个操作先完成来执行相应的代码块。select 是 Go 并发编程中的一个重要工具,常用于实…...
SQL调优讨论
说明:狭义的SQL调优,指对慢SQL(一般是Select语句,或包含Select的语句)优化,在不改变查询结果的情况下提高SQL执行效率。广义上的SQL调优,指对某个慢查询优化,通过一些类操作提高查询…...
【STM32】-TTP223B触摸开关
前言 本文章旨在记录博主STM32的学习经验,我自身也在不断的学习当中,如果文章有写的不对的地方,欢迎各位大佬批评指正。 准备工作 今天这篇文章介绍的是触摸开关这一外围硬件。 ST-link调试器STM32最小系统板单路TTP223B触摸传感器模块LE…...
华为数据之道-读书笔记
内容简介 关键字 数字化生产 已经成为普遍的商业模式,其本质是以数据为处理对象,以ICT平台为生产工具,以软件为载体,以服务为目的的生产过程。 信息与通信技术平台(Information and Communication Technology Platf…...
Zookeeper(28)Zookeeper的线性化写入和顺序一致性读是什么?
Zookeeper 是一个分布式协调服务,它在设计上提供了强一致性的保证,其中包括线性化写入和顺序一致性读。这两种一致性模型确保了在分布式系统中数据的一致性和操作的确定性。 线性化写入(Linearizable Writes) 线性化写入保证在任…...
Ubuntu安装GitLab
在 Ubuntu 上安装 GitLab 的步骤如下。这里以 GitLab Community Edition(CE)为例: 前提条件 确保你的 Ubuntu 系统是 20.04 或更高版本。确保你的系统满足 GitLab 的硬件要求。 步骤 更新系统包: sudo apt update sudo apt upg…...
Stable Diffusion 3.5 介绍
Stable Diffusion 3.5 是由 Stability AI 推出的最新一代图像生成模型,是 Stable Diffusion 系列的重要升级版本。以下是关于 Stable Diffusion 3.5 的详细信息: 版本概述 Stable Diffusion 3.5 包含三个主要版本: Stable Diffusion 3.5 L…...
力扣hot100-->滑动窗口、贪心
你好呀,欢迎来到 Dong雨 的技术小栈 🌱 在这里,我们一同探索代码的奥秘,感受技术的魅力 ✨。 👉 我的小世界:Dong雨 📌 分享我的学习旅程 🛠️ 提供贴心的实用工具 💡 记…...
### 2.5.3 二叉树的基本操作
2.5.3 二叉树的基本操作 // 获取树中节点的个数 int size(Node root);// 获取叶子节点的个数 int getLeafNodeCount(Node root);// 子问题思路-求叶子结点个数// 获取第K层节点的个数 int getKLevelNodeCount(Node root,int k);// 获取二叉树的高度 int getHeight(Node root);…...
GAEA 社区:从用户到共同创造者
GAEA 模型最引人注目的方面之一是,它将用户视为共同创造者,而不仅仅是被动的消费者。在许多中心化平台中,用户就是用户。但在 GAEA 的生态系统中,每个人都在推动进步。无论您是贡献计算能力、分享有价值的数据还是帮助改进模型&am…...
记录一个连不上docker中的mysql的问题
引言 使用的debian12,不同发行版可能有些许差异,连接使用的工具是navicat lite 本来是毫无思绪的,以前在云服务器上可能是防火墙的问题,但是这个桌面环境我压根没有使用防火墙。 直到 ying192:~$ mysql -h127.0.0.1 -uroot ERROR 1045 (28…...
doris:MySQL Load
Doris 兼容 MySQL 协议,可以使用 MySQL 标准的 LOAD DATA 语法导入本地文件。MySQL Load 是一种同步导入方式,执行导入后即返回导入结果。可以通过 LOAD DATA 语句的返回结果判断导入是否成功。一般来说,可以使用 MySQL Load 导入 10GB 以下的…...
使用vitepress搭建自己的博客项目
一、介绍can-vitepress-blog 什么是CAN BLOG CAN BLOG是基于vitepress二开的个人博客系统,他能够方便使用者快速构建自己的博客文章,无需繁琐的配置和复杂的代码编写。 CAN BLOG以antdv为UI设计基础,简洁大方,界面友好…...
Yii框架中的扩展:如何使用外部库
在Yii框架中,扩展功能的一种常见且有效的方式是使用外部库。这些外部库可以帮助开发者实现特定的功能,如调用第三方API、处理图片、生成PDF文件或发送邮件等。以下是使用外部库扩展Yii框架的详细步骤: 一、安装外部库 使用Composerÿ…...
【Elasticsearch】inference ingest pipeline
Elasticsearch 的 Ingest Pipeline 功能允许你在数据索引之前对其进行预处理。通过使用 Ingest Pipeline,你可以执行各种数据转换和富化操作,包括使用机器学习模型进行推理(inference)。这在处理词嵌入、情感分析、图像识别等场景…...
Linux的基本指令(上)
1.ls指令 语法:ls [选项] [目录或文件] 功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信息。 常用选项: -a 列出⽬录下的所有⽂件,包括以 . 开头的隐含⽂件。 -d 将…...
【贪心算法】洛谷P1106 - 删数问题
2025 - 01 - 22 - 第 46 篇 【洛谷】贪心算法题单 - 【贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 目录 文章目录 目录P1106 删数问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路代码 P1106 删数问题 题目描述 键盘输入一个高…...
【人工智能】Python中的知识图谱构建与应用
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着人工智能技术的不断发展,知识图谱已成为信息检索、推荐系统、自然语言处理等领域的重要技术之一。本文将详细介绍如何使用Python构建知…...
Spring WebSocket 与 STOMP 协议结合实现私聊私信功能
目录 后端pom.xmlConfig配置类Controller类DTO 前端安装相关依赖websocketService.js接口javascripthtmlCSS 效果展示简单测试连接: 报错解决方法1、vue3 使用SockJS报错 ReferenceError: global is not defined 功能补充拓展1. 安全性和身份验证2. 异常处理3. 消息…...
【Matlab高端绘图SCI绘图模板】第05期 绘制高阶折线图
1.折线图简介 折线图是一个由点和线组成的统计图表,常用来表示数值随连续时间间隔或有序类别的变化。在折线图中,x 轴通常用作连续时间间隔或有序类别(比如阶段1,阶段2,阶段3)。y 轴用于量化的数据&#x…...
java后端之事务管理
Transactional注解:作用于业务层的方法、类、接口上,将当前方法交给spring进行事务管理,执行前开启事务,成功执行则提交事务,执行异常回滚事务 spring事务管理日志: 默认情况下,只有出现Runti…...
常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)
1.FFmpeg FFmpeg是一个非常强大的开源多媒体处理框架,它提供了一系列用于处理音频、视频和多媒体流的工具和库。它也是最流行且应用最广泛的框架! 官方网址:https://ffmpeg.org/ FFmpeg 的主要特点和功能: 编解码器支持: FFmpe…...
如何移植ftp服务器到arm板子?
很多厂家提供的sdk,一般都不自带ftp服务器功能, 需要要发人员自己移植ftp服务器程序。 本文手把手教大家如何移植ftp server到arm板子。 环境 sdk:复旦微 Buildroot 2018.02.31. 解压 $ mkdir ~/vsftpd $ cp vsftpd-3.0.2.tar.gz ~/vs…...
牛批,吾爱出品
可能是因为从事IT的原因,我身边的大多数朋友也是从事相关工作的,而IT工作往往需要长时间对着电脑。这样就很容易眼睛疲劳。今天给大家推荐几款,希望有对有需要的小伙伴有所帮助,大家可以收藏以来哦。 CareUEyes CareUEyes是一款绿…...
基于 Android 的日程管理系统的设计与实现
标题:基于 Android 的日程管理系统的设计与实现 内容:1.摘要 基于 Android 的日程管理系统旨在帮助用户更高效地管理个人日程安排。该系统采用了 Android 平台的优势,结合了简洁的界面设计和强大的功能,为用户提供了便捷的日程管理体验。 在设计与实现过…...
Kubectl 与 Helm 详解
在 Kubernetes 生态中,kubectl 和 Helm 是两个核心工具,分别用于直接管理 Kubernetes 资源和简化应用的部署与管理。本文将深入探讨 kubectl 和 Helm 的功能、使用场景、部署与更新方式,并对比它们的优缺点。 1. Kubectl 详解 1.1 什么是 Kubectl? kubectl 是 Kubernetes…...
centos搭建docker registry镜像仓库
centos搭建docker registry镜像仓库 简介 Docker Registry是一个存储和分发Docker镜像的服务。它允许用户上传、下载和管理 Docker 镜像,为容器化应用的部署提供了便利。 拉取镜像 docker image pull registry证书配置 创建镜像仓库的镜像数据目录和证书目录&…...
Pyecharts之饼图与多饼图的应用
在数据可视化领域,饼图是一种常用的图表类型,特别适合展示数据的比例关系。Pyecharts 为我们提供了强大的饼图绘制功能,不仅可以轻松绘制各种饼图,还能对饼图的样式和数据标签进行深度定制,并且可以组合多个饼图以满足…...
51单片机入门_01_单片机(MCU)概述(使用STC89C52芯片;使用到的硬件及课程安排)
文章目录 1. 什么是单片机1.1 微型计算机的组成1.2 微型计算机的应用形态1.3 单板微型计算机1.4 单片机(MCU)1.4.1 单片机内部结构1.4.2 单片机应用系统的组成 1.5 80C51单片机系列1.5.1 STC公司的51单片机1.5.1 STC公司单片机的命名规则 2. 单片机的特点及应用领域2.1 单片机的…...
蓝桥杯LQ1044 求完数
题目描述 因子:因子也叫因数,例如3515,那么3和5是15的因子。 同时15115,那么1和15也是15的因子。 1,3,5,15 这四个因子是15的所有因子。 完数:如果一个数等于不含它本身的其他因子之…...
Django 日志配置实战指南
日志是 Django 项目中不可或缺的一部分,它帮助我们记录应用程序的运行状态、调试信息、错误信息等。通过合理配置日志,我们可以更好地监控和调试应用程序。本文将详细介绍如何在 Django 项目中实现日志文件分割、日志级别控制以及多环境日志配置,并结合最佳实践和代码示例,…...
[笔记] 极狐GitLab实例 : 手动备份步骤总结
官方备份文档 : 备份和恢复极狐GitLab 一. 要求 为了能够进行备份和恢复,请确保您系统已安装 Rsync。 如果您安装了极狐GitLab: 如果您使用 Omnibus 软件包,则无需额外操作。如果您使用源代码安装,您需要确定是否安装了 rsync。…...
php代码审计2 piwigo CMS in_array()函数漏洞
php代码审计2 piwigo CMS in_array()函数漏洞 一、目的 本次学习目的是了解in_array()函数和对项目piwigo中关于in_array()函数存在漏洞的一个审计并利用漏洞获得管理员帐号。 二、in_array函数学习 in_array() 函数搜索数组中是否存在指定的值。 in_array($search,$array…...
随机矩阵投影长度保持引理及其证明
原论文中的引理 2 \textbf{2} 2 1. \textbf{1. } 1. 引理 1 \textbf{1} 1(前提之一) 1.1. \textbf{1.1. } 1.1. 引理 1 \textbf{1} 1的内容 👉前提: X ∼ N ( 0 , σ ) X\sim{}N(0,\sigma) X∼N(0,σ)即 f ( x ) 1 2 π σ e – x 2 2 σ 2 f(x)\text{}…...
蓝桥杯真题 - 三国游戏 - 题解
题目链接:https://www.lanqiao.cn/problems/3518/learning/ 个人评价:难度 2 星(满星:5) 前置知识:贪心 整体思路 先假设魏蜀吴中的某一个势力最终获胜的情况下,如何求出事件发生的最大数量&a…...
Spring 源码学习(七)——注解后处理器-2
五 InitDestroyAnnotationBeanPostProcessor 类 1 属性 InitDestroyAnnotationBeanPostProcessor 类用于处理初始化与销毁注解;其中第一个属性为用于标识初始化方法与销毁方法注解类型的 initAnnotationType 与 destroyAnnotationType 属性、还有一个用于标识执行顺…...
即梦(Dreamina)技术浅析(一)
1.技术架构与核心组件 2.生成模型的具体实现 3.多模态融合技术 4.训练数据与模型优化 5.用户交互与创作流程 6.技术挑战与解决方案 7.未来发展方向 1. 技术架构与核心组件 即梦的技术架构可以分为以下几个核心组件: 1.1 前端用户界面(UI) 功能模块: 文字输入框:用…...
Spring MVC(二)
介绍 Cookie 与 Session Session 类似哈希表,存储了一些键值对结构,Key 就是 SessionID,Vaule 就是用户信息,客户端发起会话的时候,服务器一旦接收,就会创建会话【也就是 Session】,通过 Sessi…...
java求职学习day15
多线程 1 基本概念 1.1 程序和进程的概念 (1)程序 - 数据结构 算法,主要指存放在硬盘上的可执行文件。 (2)进程 - 主要指运行在内存中的可执行文件。 (3)目前主流的操作系统都支持多进程&a…...
Typesrcipt泛型约束详细解读
代码示例: // 如果我们直接对一个泛型参数取 length 属性, 会报错, 因为这个泛型根本就不知道它有这个属性 (() > {// 定义一个接口,用来约束将来的某个类型中必须要有length这个属性interface ILength{// 接口中有一个属性lengthlength:number}function getLen…...
[操作系统] 进程地址空间管理
虚拟地址空间的初始化 缺页中断 缺页中断的概念 缺页中断(Page Fault Interrupt) 是指当程序访问的虚拟地址在页表中不存在有效映射(即该页未加载到内存中)时,CPU 会发出一个中断信号,请求操作系统加载所…...
【fly-iot飞凡物联】(20):2025年总体规划,把物联网整套技术方案和实现并落地,完成项目开发和课程录制。
前言 fly-iot飞凡物联专栏: https://blog.csdn.net/freewebsys/category_12219758.html 1,开源项目地址进行项目开发 https://gitee.com/fly-iot/fly-iot-platform 完成项目开发,接口开发。 把相关内容总结成文档,并录制课程。…...
14-6-1C++STL的list
(一)list容器的基本概念 list容器简介: 1.list是一个双向链表容器,可高效地进行插入删除元素 2.list不可以随机存取元素,所以不支持at.(pos)函数与[ ]操作符 (二)list容器头部和尾部的操作 list对象的默…...
vue2和vue3指令
Vue 2 和 Vue 3 的指令系统非常相似,但 Vue 3 在指令方面进行了优化和扩展。以下是 Vue 2 和 Vue 3 中指令的对比: 1. 通用指令 这些指令在 Vue 2 和 Vue 3 中都可以使用,功能一致: 指令说明v-bind绑定 HTML 属性或组件 propsv-…...
求整数的和与均值(信息学奥赛一本通-1061)
【题目描述】 读入n(1≤n≤10000)个整数,求它们的和与均值。 【输入】 输入第一行是一个整数n,表示有n个整数。 第2~n1行每行包含1个整数。每个整数的绝对值均不超过10000。 【输出】 输出一行,先输出和,再输出平均值(保留到小数点…...
CodeForces 611:New Year and Domino ← 二维前缀和
【题目来源】 https://codeforces.com/contest/611/problem/C 【题目描述】 They say "years are like dominoes, tumbling one after the other". But would a year fit into a grid? I dont think so. Limak is a little polar bear who loves to play. He has r…...
【ROS2】RViz2界面类 VisualizationFrame 详解
1、简述 VisualizationFrame 继承自 QMainWindow 和 WindowManagerInterface; 窗口顶部是常规布局:菜单栏 和 工具栏 窗口中心是 RenderPanel,用来渲染3D画面 周围是dock区域,包括:DisplaysPanel、ViewsPanel、TimePanel、SelectionPanel 和 ToolPropertiesPanel Windo…...