【超详细】卷积神经网络CNN基本架构以及工作原理详解
《------往期经典推荐------》
一、AI应用软件开发实战专栏【链接】
项目名称 | 项目名称 |
---|---|
1.【人脸识别与管理系统开发】 | 2.【车牌识别与自动收费管理系统开发】 |
3.【手势识别系统开发】 | 4.【人脸面部活体检测系统开发】 |
5.【图片风格快速迁移软件开发】 | 6.【人脸表表情识别系统】 |
7.【YOLOv8多目标识别与自动标注软件开发】 | 8.【基于YOLOv8深度学习的行人跌倒检测系统】 |
9.【基于YOLOv8深度学习的PCB板缺陷检测系统】 | 10.【基于YOLOv8深度学习的生活垃圾分类目标检测系统】 |
11.【基于YOLOv8深度学习的安全帽目标检测系统】 | 12.【基于YOLOv8深度学习的120种犬类检测与识别系统】 |
13.【基于YOLOv8深度学习的路面坑洞检测系统】 | 14.【基于YOLOv8深度学习的火焰烟雾检测系统】 |
15.【基于YOLOv8深度学习的钢材表面缺陷检测系统】 | 16.【基于YOLOv8深度学习的舰船目标分类检测系统】 |
17.【基于YOLOv8深度学习的西红柿成熟度检测系统】 | 18.【基于YOLOv8深度学习的血细胞检测与计数系统】 |
19.【基于YOLOv8深度学习的吸烟/抽烟行为检测系统】 | 20.【基于YOLOv8深度学习的水稻害虫检测与识别系统】 |
21.【基于YOLOv8深度学习的高精度车辆行人检测与计数系统】 | 22.【基于YOLOv8深度学习的路面标志线检测与识别系统】 |
23.【基于YOLOv8深度学习的智能小麦害虫检测识别系统】 | 24.【基于YOLOv8深度学习的智能玉米害虫检测识别系统】 |
25.【基于YOLOv8深度学习的200种鸟类智能检测与识别系统】 | 26.【基于YOLOv8深度学习的45种交通标志智能检测与识别系统】 |
27.【基于YOLOv8深度学习的人脸面部表情识别系统】 | 28.【基于YOLOv8深度学习的苹果叶片病害智能诊断系统】 |
29.【基于YOLOv8深度学习的智能肺炎诊断系统】 | 30.【基于YOLOv8深度学习的葡萄簇目标检测系统】 |
31.【基于YOLOv8深度学习的100种中草药智能识别系统】 | 32.【基于YOLOv8深度学习的102种花卉智能识别系统】 |
33.【基于YOLOv8深度学习的100种蝴蝶智能识别系统】 | 34.【基于YOLOv8深度学习的水稻叶片病害智能诊断系统】 |
35.【基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统】 | 36.【基于YOLOv8深度学习的智能草莓病害检测与分割系统】 |
37.【基于YOLOv8深度学习的复杂场景下船舶目标检测系统】 | 38.【基于YOLOv8深度学习的农作物幼苗与杂草检测系统】 |
39.【基于YOLOv8深度学习的智能道路裂缝检测与分析系统】 | 40.【基于YOLOv8深度学习的葡萄病害智能诊断与防治系统】 |
41.【基于YOLOv8深度学习的遥感地理空间物体检测系统】 | 42.【基于YOLOv8深度学习的无人机视角地面物体检测系统】 |
43.【基于YOLOv8深度学习的木薯病害智能诊断与防治系统】 | 44.【基于YOLOv8深度学习的野外火焰烟雾检测系统】 |
45.【基于YOLOv8深度学习的脑肿瘤智能检测系统】 | 46.【基于YOLOv8深度学习的玉米叶片病害智能诊断与防治系统】 |
47.【基于YOLOv8深度学习的橙子病害智能诊断与防治系统】 | 48.【基于深度学习的车辆检测追踪与流量计数系统】 |
49.【基于深度学习的行人检测追踪与双向流量计数系统】 | 50.【基于深度学习的反光衣检测与预警系统】 |
51.【基于深度学习的危险区域人员闯入检测与报警系统】 | 52.【基于深度学习的高密度人脸智能检测与统计系统】 |
53.【基于深度学习的CT扫描图像肾结石智能检测系统】 | 54.【基于深度学习的水果智能检测系统】 |
55.【基于深度学习的水果质量好坏智能检测系统】 | 56.【基于深度学习的蔬菜目标检测与识别系统】 |
57.【基于深度学习的非机动车驾驶员头盔检测系统】 | 58.【太基于深度学习的阳能电池板检测与分析系统】 |
59.【基于深度学习的工业螺栓螺母检测】 | 60.【基于深度学习的金属焊缝缺陷检测系统】 |
61.【基于深度学习的链条缺陷检测与识别系统】 | 62.【基于深度学习的交通信号灯检测识别】 |
63.【基于深度学习的草莓成熟度检测与识别系统】 | 64.【基于深度学习的水下海生物检测识别系统】 |
65.【基于深度学习的道路交通事故检测识别系统】 | 66.【基于深度学习的安检X光危险品检测与识别系统】 |
67.【基于深度学习的农作物类别检测与识别系统】 | 68.【基于深度学习的危险驾驶行为检测识别系统】 |
69.【基于深度学习的维修工具检测识别系统】 | 70.【基于深度学习的维修工具检测识别系统】 |
71.【基于深度学习的建筑墙面损伤检测系统】 | 72.【基于深度学习的煤矿传送带异物检测系统】 |
73.【基于深度学习的老鼠智能检测系统】 |
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
目录
- 引言
- CNN简介
- CNN架构的关键组件
- 1.输入层
- 2.卷积层
- 3.激活函数(ReLU)
- 4.池化层(下采样)
- 5.全连接层(密集层)
- 6.输出层
- 高阶CNN层
- CNN如何训练
- 🔹CNN中的反向传播
- 🔹损失函数的梯度:
- 🔹反向传播过程可以分解如下:
- 🔹CNN中的优化器
- 反向传播和优化器如何协同工作
- 示例CNN架构:LeNet-5
- 现代CNN架构
引言
卷积神经网络(CNN)是一类专门为涉及图像和空间数据的任务而设计的深度学习模型,例如图像识别,分类,分割等。CNN的架构受到人类视觉系统的启发,具有自动从数据中学习特征的层。本文将详细介绍CNN的基本架构。
CNN简介
CNN旨在利用图像中的空间结构,使其成为图像相关任务的强大工具。
它们通过对输入数据应用一系列过滤器(内核)来提取重要特征,如边缘、纹理和模式。
CNN架构的关键组件
CNN通常由以下类型的层组成:
- 输入层
- 卷积层
- 激活层
- 池化层
- 全连接层(密集层)
- 输出层
1.输入层
形状: 输入层表示将通过网络传递的数据。对于图像分类,这可以是具有3个颜色通道(RGB)的2D图像(高度x宽度)。对于大小为32 x32 x3的图像,输入形状将是**(32,32,3)**
。
2.卷积层
卷积层将一组滤波器(也称为内核)应用于输入图像。这些过滤器在图像上滑动(卷积)以产生特征图,这些特征图用于检测输入图像中的特定特征。
过滤器/核: 这些是小权重矩阵(例如,3x 3或5x 5),其从图像提取局部特征。当内核在图像上移动时,它会计算内核和它当前所在的图像部分之间的点积。
步幅: 步幅控制滤镜在图像上移动时的步长。步幅为1表示过滤器一次移动一个像素,步幅为2表示过滤器一次移动两个像素。
填充: 填充在图像周围添加额外的像素(通常为零),以保留卷积后的空间维度。有两种类型:
有效填充: 无填充,导致输出较小。
Padding: 添加Padding以保持输出大小与输入大小相同。
🔹数学概念
应用于输入图像*I*的大小为(m,m)的滤波器F*导致产生输出特征图O***的卷积运算。
3.激活函数(ReLU)
在每个卷积操作之后,应用激活函数以将非线性引入模型中。CNN中最常用的激活函数是ReLU(Rectified Linear Unit)。
它将特征图中的所有负值替换为零,并保持正值不变。
这有助于模型通过引入非线性来学习更复杂的模式。
4.池化层(下采样)
池化层用于减少特征图的空间维度(高度和宽度),使网络的计算效率更高,更不容易过拟合。
- 最大池化: 从特征映射的区域中获取最大值。
- Average Pooling: 从特征映射的区域中获取平均值。
例如,应用2x2最大池化操作将通过从每个2x2区域中选择最大值来将4x4特征图减少为2x2特征图。
5.全连接层(密集层)
在卷积层和池化层之后,输出的特征图通常被展平为1D向量。然后,该向量通过一个或多个完全连接的层,其中每个节点连接到前一层中的每个节点。
- 这些层通过组合卷积层学习的特征来执行分类。
- 最后的全连接层对应于分类任务中的类别数量。
6.输出层
输出层表示CNN计算的最终结果。对于分类任务,输出层通常使用softmax激活函数来提供每个类别的概率。
其中z是类i的得分,输出是类的概率分布。
高阶CNN层
除了标准层,还有一些用于特定情况的高级CNN层:
批量归一化: 这一层将输入归一化到下一层,使其具有零均值和单位方差。这有助于稳定和加快训练。
Dropout层: Dropout是一种正则化技术,用于通过在训练过程中随机丢弃神经元来防止过拟合。
残差连接: 在更深的网络中(例如,ResNet),残差连接用于帮助模型避免梯度消失问题,允许梯度在反向传播期间直接流过跳过连接。
CNN如何训练
CNN使用反向传播进行训练,其中预测输出和真实标签之间的误差通过网络反向传播,以使用优化算法(例如,梯度下降)。
🔹CNN中的反向传播
反向传播是一种用于训练CNN的算法,它根据预测输出和真实输出之间的误差更新网络的权重。目标是使用梯度下降或其他优化技术来最小化损失函数。
前向传递: 在前向传递过程中,输入图像通过CNN层(卷积层,激活函数,池化层和全连接层)。结果是一个预测,将其与真实标签进行比较。
Loss计算:在向前传递之后,使用loss函数计算预测输出和实际标签之间的差异。对于分类任务,通常使用交叉熵损失:
反向传递(Backpropagation):在反向传递中,我们计算损失函数相对于网络权重的梯度(导数)。这涉及到应用微积分的链式规则将错误从输出层通过网络传播回来,调整卷积层和全连接层的权重。
🔹损失函数的梯度:
梯度告诉我们网络中每个权重对误差的贡献有多大。它是逐层计算的,从输出层开始,向后移动到输入层。
对于网络中的一个权重*w*,梯度[*RightLoss/Rightw*]表示如何改变权重以减少误差。该梯度是针对网络中的每个权重、偏置和过滤器计算的。
🔹反向传播过程可以分解如下:
计算**输出层的损耗:**基于输出计算损耗(例如,用于分类的交叉熵)。计算损失相对于输出激活的梯度。
**通过层反向传播梯度:**对于每一层,损失的梯度向后传播。链式规则被应用于计算卷积层、激活层、池化层等中的权重梯度。
更新权重:在计算梯度之后,使用梯度下降等优化算法(下面将详细介绍)基于梯度更新权重。
🔹CNN中的优化器
优化器是一种通过在反向传播过程中调整权重来最小化损失函数的方法。
它确定如何使用反向传播期间计算的梯度来更新网络中的权重和偏差。
有几种类型的优化器,每种都有独特的更新权重的策略。
梯度下降: 优化的基本形式是梯度下降。在梯度下降中,权重在损失函数的梯度的相反方向上更新,以最小化误差。基本梯度下降更新规则:
在这里,
- W_new是𝓌更新后的,
- W_old是当前的权重,
- η是学习率(小标量值),
- Δ Loss/Δ Ww是损失相对于重量的梯度。
学习率η控制我们在梯度方向上迈出的一步。高学习率会导致模型超过最优解,而低学习率会使训练变慢。
随机梯度下降(SGD): 在随机梯度下降(SGD)中,不是使用整个数据集来计算梯度,而是使用数据的随机子集(小批量)来估计梯度。这使得SGD更快,更高效,特别是在处理大型数据集时。
小批量梯度下降:
- 数据集被分成小批。
- 模型参数在每个小批处理之后更新,而不是在处理整个数据集之后更新。
Momentum: Momentum是一种用于加速梯度下降的技术,通过将先前权重更新的一小部分添加到当前更新。它有助于优化器更快地向正确的方向移动,避免振荡。动量更新规则:
在这里,
- v是速度(梯度的连续和),
- β是动量因子(通常在0和1之间)。
Adam优化器:Adam优化器(自适应矩估计的缩写)结合了Momentum和RMSProp(均方根传播)的优点。它根据梯度的一阶矩和二阶矩(均值和方差)调整学习率。Adam是最受欢迎的优化器之一,因为它单独调整每个参数的学习率,这有助于更快的收敛。Adam更新规则:
Adam根据梯度的均值和方差调整学习率,使其对许多类型的神经网络非常有效。
RMSProp: RMSProp(均方根传播)是一个优化器,它根据平方梯度的移动平均值调整学习率。它和亚当类似,但没有用到动量项. RMSProp更新规则:
在这里,
- *E[g²]*是梯度平方的移动平均值,
- β是衰减因子(通常接近1)。
反向传播和优化器如何协同工作
以下是他们如何在训练CNN的背景下一起工作:
前馈:输入数据通过CNN层进行预测。通过将预测输出与实际标签进行比较来计算损失。
反向传播(Backpropagation): 通过网络反向传播误差来计算反向传播。梯度指示应如何调整每个权重以使误差最小化。
优化器: 优化器(例如,Adam,SGD)使用这些梯度通过在减少损失的方向上调整权重来更新权重。优化器可能会根据梯度调整学习率,以帮助模型更快地收敛。
重复:向前和向后传递重复几次迭代(epoch),直到模型收敛,这意味着损失停止减少或达到令人满意的值。
示例CNN架构:LeNet-5
最早成功的CNN架构之一是LeNet-5,由Yann LeCun于1998年开发,用于数字识别(MNIST)。
- 输入: 32 x32灰度图像
- 第1层(卷积): 6个大小为5x 5的过滤器,然后是ReLU
- 第2层(池化): 使用2x2过滤器的最大池化
- 第3层(卷积): 16个大小为5x 5的滤波器
- 第4层(池化): 使用2x2过滤器的最大池化
- 第5层(完全连接): 120
- 第6层(完全连接): 84
- 输出: 10个分类类别(数字0-9)
现代CNN架构
AlexNet: AlexNet于2012年推出,性能显著优于传统机器学习技术,并使用了ReLU、dropout和GPU加速等技术。
VGGNet: 以其简单的架构和深层和小过滤器(3x3)而闻名。
ResNet: 使用剩余连接来允许非常深的网络(高达1000+层),而不会遭受消失梯度。
Inception:使用不同过滤器大小的混合方法并行捕获不同尺度的特征。
CNN是处理图像和空间数据的最强大和最广泛使用的深度学习模型之一。该架构包括卷积层、激活函数、池化和全连接层,允许模型自动学习分层特征,使其有效地用于图像识别和分类等任务。了解基本组件以及它们如何协同工作对于构建和优化各种应用的CNN至关重要。
好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!
相关文章:

【超详细】卷积神经网络CNN基本架构以及工作原理详解
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

Html前后端Ajax交互数据前端JavaScript脚本后台C#ashx服务
本示例使用设备:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bU8Fdbo&ftt&id615391857885 前端以GET模式向后台请求数据 function MyGetAjax() {var xhr new XMLHttpRequest();xhr.open(GET, http://192.168.1.211/HttpReader.ash…...
问:Spring Boot应用监控组件工具,梳理一下?
在日常运维与开发过程中,Spring Boot 应用的监控是确保系统稳定性和性能的关键环节。本文将探讨 Spring Boot 常用的监控组件及工具的原理、适用场景,并针对不同场景下的运维监控方案进行介绍。 1. Spring Boot Actuator 原理: Spring Boo…...

利用Hooka开源的多种功能shellcode加载器实现快速免杀火绒,静态360+360杀毒,微步查杀1,vt查杀7(教程)
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于…...

2025-2026财年美国CISA国际战略规划(下)
文章目录 前言四、加强综合网络防御(一)与合作伙伴共同实施网络防御,降低集体风险推动措施有效性衡量 (二)大规模推动标准和安全,以提高网络安全推动措施有效性衡量 (三)提高主要合作…...

iframe通过url方式来获传递的参数
iframe通过url方式来获传递的参数 一、src"http://xxxx/#/policyOverview?codeaaaa"二、 src"/static/iframePhone/html/main.html?codeaaaa" 一、src“http://xxxx/#/policyOverview?codeaaaa” <iframedata-v-47a50536""src"http:/…...

蓝桥杯不知道叫什么题目
小蓝有一个整数,初始值为1,他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如,如果整…...

最多可收集的水果数目
三个小朋友收集水果问题:最大水果收集路径 问题描述 有一个游戏,游戏由 n x n 个房间网格状排布组成。给定一个大小为 n x n 的二维整数数组 fruits,其中 fruits[i][j] 表示房间 (i, j) 中的水果数目。 游戏开始时,三个小朋友分…...

戴尔 AI Factory 上的 Agentic RAG 搭载 NVIDIA 和 Elasticsearch 向量数据库
作者:来自 Elastic Hemant Malik, Dell Team 我们很高兴与戴尔合作撰写白皮书《戴尔 AI Factory with NVIDIA 上的 Agentic RAG》。白皮书是一份供开发人员参考的设计文档,概述了实施 Agentic 检索增强生成 (retrieval augmented generation - RAG) 应用…...

HarmonyOS4+NEXT星河版入门与项目实战(16)------ 状态管理 @State(页面数据刷新与渲染)
文章目录 1、@State装饰器2、视图渲染演示1、无嵌套的对象属性值变化时可以触发页面渲染2、嵌套对象的嵌套属性值变化时不能够触发页面刷新渲染3、数组中对象的属性值变化时不能触发页面刷新渲染3、总结1、@State装饰器 2、视图渲染演示 常规的 string、number 这里就不演示了…...

Origin教程003:数据导入(2)-从文件导入和导入矩阵数据
文章目录 3.3 从文件导入3.3.1 导入txt文件3.3.2 导入excel文件3.3.3 合并工作表3.4 导入矩阵数据3.3 从文件导入 所需数据 https://download.csdn.net/download/WwLK123/900267473.3.1 导入txt文件 选择【数据->从文件导入->导入向导】: 选择文件之后,点击完成即可…...
设计自己的网络通信协议
文章目录 一、为什么需要设计网络通信协议1. **标准化通信规则**2. **确保数据传输的可靠性**3. **支持网络的多样性和可扩展性**4. **分层设计,简化复杂性**5. **实现设备的互操作性**6. **支持多任务和多应用并发**7. **提供安全性**8. **支持不同的通信模式**总结…...
深入理解 Seata:分布式事务的最佳解决方案
随着微服务架构的广泛应用,分布式事务管理成为系统设计中一项重要且极具挑战的任务。在微服务架构下,服务之间通过网络调用,单个业务操作往往需要多个服务的协作来完成,这样分布式事务的问题就不可避免。Seata 是目前较为流行的一…...
JDK下载
jdk-8u421-windows-x64.exe : 阿里云盘 jdk-7u80-windows-x64.exe :阿里云盘...

如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
目录 一、准备工作 二、理解文本数据格式 三、开发文本数据转换为Excel工具 读取CSV文件 将DataFrame写入Excel文件 处理其他格式的文本数据 读取纯文本文件: 读取TSV文件: 四、完整代码与工具封装 五、使用工具 六、总结 在数据分析和处理的日常工作中,我们经常…...

React(六)——Redux
文章目录 项目地址基本理解一、配置Redux store二、创建slice配置到store里并使用三、给Slice配置reducers,用来修改初始值 项目地址 教程作者:教程地址: 代码仓库地址: 所用到的框架和插件: dbt airflow基本理解 s…...

java抽奖系统(二)
3. 新建项目 3.1 选择相应的框架 pom文件配置如下: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:s…...

STM32F10x 定时器
使用定时器实现:B5 E5的开关 添加相关的.h路径文件 添加相关的.c配置文件 led.h文件 用于声明LED函数 #ifndef __LED_H //没有定义__LED_H #define __LED_H //就定义__LED_H #define LED1_ON GPIO_ResetBits(GPIOB,GPIO_Pin_5) #defi…...

从0开始学PHP面向对象内容之常用设计模式(适配器,桥接,装饰器)
二,结构型设计模式 上两期咱们讲了创建型设计模式,都有 单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式五个设计模式。 这期咱们讲结构型设计模式 1、适配器模式(Adapter) …...

玩转数字与运算:用C语言实现24点游戏的扑克牌魅力
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...

spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...