当前位置: 首页 > news >正文

卷积神经网络综述

摘要

本文对卷积神经网络(Convolutional Neural Network,CNN)进行了全面综述。首先介绍了卷积神经网络的发展历程,包括早期的理论基础和关键突破。接着详细阐述了卷积神经网络的结构组成,包括卷积层、池化层、全连接层等,分析了各层的作用和特点。然后探讨了卷积神经网络在图像识别、目标检测、语义分割等多个领域的应用,并介绍了一些典型的应用案例。此外,还讨论了卷积神经网络的训练方法和优化技巧,包括数据增强、正则化、超参数调整等。最后,对卷积神经网络的未来发展趋势进行了展望。

一、引言

随着人工智能技术的飞速发展,卷积神经网络作为一种高效的深度学习模型,在图像识别、语音处理、自然语言处理等领域取得了巨大的成功。卷积神经网络具有自动提取特征、强大的泛化能力和高效的计算性能等优点,已经成为当前人工智能领域的研究热点之一。本文旨在对卷积神经网络进行全面综述,介绍其发展历程、结构组成、应用领域、训练方法和未来发展趋势,为相关研究人员提供参考。 

二、卷积神经网络的发展历程

(一)早期理论基础

卷积神经网络的理论基础可以追溯到 20 世纪 60 年代,Hubel 和 Wiesel 在研究猫的视觉皮层时发现了感受野的概念。感受野是指视觉系统中神经元对特定区域的视觉刺激产生反应的区域。这一发现为后来的卷积神经网络提供了重要的理论基础。 20 世纪 80 年代,Fukushima 提出了神经认知机(Neocognitron),这是一种基于感受野概念的多层神经网络模型,被认为是卷积神经网络的前身。神经认知机采用了局部连接和权值共享的方式,有效地减少了网络的参数数量,提高了网络的计算效率。

(二)关键突破

2012 年,Krizhevsky 等人在 ImageNet 图像识别竞赛中使用卷积神经网络 AlexNet 取得了巨大的成功,将图像识别的准确率大幅提高。AlexNet 采用了更深的网络结构、ReLU 激活函数、Dropout 正则化等技术,有效地解决了过拟合问题,提高了网络的性能。 此后,卷积神经网络得到了快速发展,出现了许多优秀的网络结构,如 VGGNet、GoogLeNet、ResNet 等。这些网络结构不断地加深网络深度、提高网络性能,推动了卷积神经网络在各个领域的应用。

三、卷积神经网络的结构组成

(一)卷积层

卷积层是卷积神经网络的核心组成部分,其主要作用是提取输入图像的特征。卷积层由多个卷积核组成,每个卷积核与输入图像进行卷积操作,得到一个特征图。卷积核的大小和数量可以根据具体的任务进行调整。 卷积操作的过程是将卷积核与输入图像的局部区域进行点积运算,然后将结果相加得到一个输出值。通过不断地移动卷积核,可以得到整个输入图像的特征图。卷积操作具有局部连接和权值共享的特点,可以有效地减少网络的参数数量,提高网络的计算效率。

(二)池化层

池化层的主要作用是降低特征图的分辨率,减少网络的参数数量和计算量。池化层通常采用最大池化或平均池化的方式,对输入特征图的局部区域进行下采样操作,得到一个输出值。 最大池化是指在输入特征图的局部区域中选择最大值作为输出值,平均池化是指在输入特征图的局部区域中计算平均值作为输出值。池化层可以有效地降低特征图的分辨率,减少网络的参数数量和计算量,同时也可以提高网络的鲁棒性和泛化能力。

(三)全连接层

全连接层的主要作用是将卷积层和池化层提取的特征进行整合,输出最终的分类结果或回归结果。全连接层通常由多个神经元组成,每个神经元与上一层的所有神经元进行全连接。 全连接层的参数数量通常比较大,容易导致过拟合问题。为了解决这个问题,可以采用 Dropout 正则化、L1 和 L2 正则化等技术,减少网络的参数数量,提高网络的泛化能力。

四、卷积神经网络的应用领域

(一)图像识别

卷积神经网络在图像识别领域取得了巨大的成功,已经成为当前图像识别的主流方法之一。卷积神经网络可以自动提取图像的特征,无需人工设计特征,具有很强的泛化能力和鲁棒性。 在 ImageNet 图像识别竞赛中,卷积神经网络的准确率不断提高,已经超过了人类的识别水平。卷积神经网络不仅可以用于自然图像的识别,还可以用于医学图像、卫星图像等领域的识别。

(二)目标检测

目标检测是指在图像中检测出特定的目标物体,并确定其位置和大小。卷积神经网络可以通过对图像进行卷积操作,自动提取目标物体的特征,然后使用分类器对目标物体进行分类和定位。 目前,卷积神经网络已经成为目标检测的主流方法之一,出现了许多优秀的目标检测算法,如 Faster R-CNN、YOLO、SSD 等。这些算法在检测速度和准确率方面都取得了很大的进步,已经广泛应用于安防、交通、医疗等领域。

(三)语义分割

语义分割是指将图像中的每个像素点分配到一个特定的类别中,实现对图像的像素级分类。卷积神经网络可以通过对图像进行卷积操作,自动提取图像的特征,然后使用分类器对每个像素点进行分类。 目前,卷积神经网络已经成为语义分割的主流方法之一,出现了许多优秀的语义分割算法,如 FCN、U-Net、DeepLab 等。这些算法在分割精度和速度方面都取得了很大的进步,已经广泛应用于自动驾驶、医疗影像分析等领域。

五、卷积神经网络的训练方法和优化技巧

(一)数据增强

数据增强是指通过对原始数据进行随机变换,生成更多的训练数据,提高网络的泛化能力。数据增强的方法包括随机裁剪、随机翻转、随机旋转、颜色变换等。 数据增强可以有效地增加训练数据的数量和多样性,提高网络的泛化能力,减少过拟合问题。在实际应用中,可以根据具体的任务和数据特点选择合适的数据增强方法。

(二)正则化

正则化是指通过对网络的参数进行约束,减少网络的过拟合问题。正则化的方法包括 L1 和 L2 正则化、Dropout 正则化、Early Stopping 等。 L1 和 L2 正则化是通过对网络的参数添加惩罚项,使得网络的参数更加稀疏,减少过拟合问题。Dropout 正则化是通过在训练过程中随机地将一些神经元的输出置为 0,使得网络的结构更加简单,减少过拟合问题。Early Stopping 是通过在训练过程中监测验证集的准确率,当验证集的准确率不再提高时,停止训练,防止过拟合。

(三)超参数调整

超参数是指在训练过程中需要手动调整的参数,如学习率、批量大小、网络结构等。超参数的调整对网络的性能有很大的影响,需要根据具体的任务和数据特点进行调整。 超参数调整的方法包括网格搜索、随机搜索、贝叶斯优化等。网格搜索是指在一定的范围内对超参数进行穷举搜索,找到最优的超参数组合。随机搜索是指在一定的范围内对超参数进行随机搜索,找到最优的超参数组合。贝叶斯优化是指通过建立超参数的概率模型,利用贝叶斯定理对超参数进行优化,找到最优的超参数组合。

六、卷积神经网络的未来发展趋势

(一)深度和宽度的进一步增加

随着计算能力的不断提高,卷积神经网络的深度和宽度将进一步增加。更深的网络结构可以提取更丰富的特征,提高网络的性能。更宽的网络结构可以增加网络的容量,提高网络的泛化能力。

(二)轻量化和高效化

为了满足实际应用的需求,卷积神经网络将朝着轻量化和高效化的方向发展。轻量化的网络结构可以减少网络的参数数量和计算量,提高网络的运行速度。高效化的训练方法可以减少网络的训练时间,提高网络的训练效率。

(三)多模态融合

多模态融合是指将不同模态的数据进行融合,提高网络的性能。例如,可以将图像数据和文本数据进行融合,实现图像和文本的联合识别。多模态融合可以充分利用不同模态的数据信息,提高网络的泛化能力和鲁棒性。

(四)无监督学习和自监督学习

无监督学习和自监督学习是指在没有标签数据的情况下进行学习,提高网络的泛化能力。无监督学习和自监督学习可以利用大量的无标签数据进行学习,减少对标签数据的依赖,提高网络的性能。

七、结论

 卷积神经网络作为一种高效的深度学习模型,在图像识别、目标检测、语义分割等领域取得了巨大的成功。本文对卷积神经网络的发展历程、结构组成、应用领域、训练方法和未来发展趋势进行了全面综述。随着计算能力的不断提高和技术的不断进步,卷积神经网络将在更多的领域得到广泛应用,为人工智能技术的发展做出更大的贡献。

八、一些卷积神经网络综述论文的优秀范本

以下是一些卷积神经网络综述论文的优秀范本,你可以根据自己的需求进行参考:

《What Do We Understand About Convolutional Networks?》:作者是约克大学电气工程与计算机科学系的 Ismahadji 和 Richard P. Wildes。该论文对卷积网络的技术基础、组成模块、当前现状和研究前景进行了详细梳理,介绍了当前对 CNN 的理解,涵盖了典型卷积网络的各种组件,并从生物学和理论等角度讨论了不同组件的设计,还概述了通过可视化和实证研究来理解 CNN 的不同尝试,对于全面了解卷积神经网络的发展和现状很有帮助。

《深度卷积神经网络论文综述》:该论文将最近的 CNN 架构创新分为七个不同的类别,包括空间利用、深度、多路径、宽度、特征图利用、通道提升和注意力等方面,并且涵盖了对 CNN 组成部分的基本理解,揭示了 CNN 目前面临的挑战及其应用,有助于读者快速把握 CNN 架构设计的最新趋势和研究方向。 

《卷积神经网络研究综述》:作者周飞燕、金林鹏、董军。此文首先概述了卷积神经网络的发展历史,接着分别描述了神经元模型、多层感知器的结构,然后详细分析了卷积神经网络的结构(包括卷积层、取样层、全连接层等)及其作用,还讨论了改进的卷积神经网络(如网中网结构、空间变换网络等),同时介绍了卷积神经网络的监督学习、无监督学习训练方法以及一些常用的开源工具,并以多种应用为例归纳了卷积神经网络的应用,最后给出了卷积神经网络及其应用中待解决的若干问题,内容较为全面。 

《卷积神经网络的经典论文》:虽然没有明确的作者信息,但这篇论文通过一个实现卷积神经网络的流程示例,让读者对卷积神经网络的实现过程有一个直观的认识,包括数据准备、网络架构设计、训练网络、测试网络和评估性能等环节,对于初学者理解卷积神经网络的基本概念和实践方法有一定的指导意义。

 基于matlab的深度学习案例及基础知识汇总,包括长短期记忆网络、卷积神经网络、循环神经网络、字符识别、车牌识别、图像去噪、信号预测、数据分类等各类分类问题

九、深度学习相关例程汇总

链接

https://blog.csdn.net/xu157303764/category_12685336.html?spm=1001.2014.3001.5482

相关文章:

卷积神经网络综述

摘要 本文对卷积神经网络(Convolutional Neural Network,CNN)进行了全面综述。首先介绍了卷积神经网络的发展历程,包括早期的理论基础和关键突破。接着详细阐述了卷积神经网络的结构组成,包括卷积层、池化层、全连接层…...

SpringBoot3设置maven package直接打包成二进制可执行文件

注意事项 SpringBoot普通native打包顺序clean compile spring-boot:process-aot native:compile 使用以下配置只会的打包顺序clean package(注意:使用此配置以后打包会有编译后的class文件、jar包、original源文件、二进制可执行文件【Linux是无后缀的包…...

在 Anaconda 上安装多版本 Python 解释器并在 PyCharm 中配置

默认已安装好 Anaconda 和 PyCharm ,想在 Anaconda 上安装最新版本的 Python 解释器。 一、在 Anaconda 上创建虚拟环境 在连网状态下进入系统的命令提示符(快捷键:win r ,输入 cmd 即可),输入如下命令&a…...

AES (高级加密标准)

原理详解 AES是一种对称加密算法,使用相同的密钥进行加密和解密。它采用替代-置换网络(SPN)结构,主要步骤包括: 密钥扩展:从初始密钥派生多轮密钥 初始轮:AddRoundKey(轮密钥加) 主轮&#xff…...

Git拉分支技巧:从零开始创建并推送分支

Git拉分支技巧:从零开始创建并推送分支 在团队协作开发中,Git 分支管理是不可或缺的技能。合理地创建、同步和推送分支,不仅能提高开发效率,还能避免代码冲突。本文将基于以下技巧,详细讲解如何从零开始创建并推送一个…...

线性回归之归一化(normalization)

文章目录 归一化与梯度下降归一化的必要性:从特征量纲到梯度下降问题背景矛盾与低效归一化的作用 归一化提高模型精度的原因归一化的本质常见归一化方法最大值最小值归一化示例说明优缺点分析 标准归一化具体机制示例说明 强调 归一化与梯度下降 归一化与梯度下降 &…...

mac监控linux上mysql性能(Grafana+Prometheus+mysqld_exporter)

一、监控查看端安装 Grafana安装-CSDN博客 普罗米修斯Prometheus监控安装(mac)-CSDN博客 1.启动Grafana服务 brew services start grafana 打开浏览器输入http://localhost:3000进入grafana登录页面 (默认用户名和密码都为admin,进入后…...

【玩泰山派】MISC(杂项)- linux桌面环境

文章目录 linux桌面环境linux四大桌面环境概述ubuntu基于四大桌面环境的版本 显示管理器gdm3(GNOME Display Manager)lightdm(Lightweight Display Manager)SDDM(Simple Desktop Display Manager)KDM&#…...

MVCC介绍

MVCC(多版本并发控制)详解 MVCC(Multi-Version Concurrency Control) 是一种数据库并发控制技术,核心思想是通过维护数据的多个版本来实现读写操作的无锁并发,从而在高并发场景下提升性能。它广泛用于 MyS…...

神经网络与模型训练过程笔记

1.专有名词 ANN 人工神经网络,一种受生物神经元启发的监督学习算法。输入数据通过网络中的层级函数传递,激活特定神经元。函数复杂度越高,模型对数据的拟合能力越强,预测精度越高。 偏置项 其中x下表从1开始的是输入变量&#xf…...

ASP.NET 0~1学习

变量 string username Request["id"]; 声明并初始化一个字符串变量 username 数据类型 下面列出了常用的数据类型: 类型描述实例int整数(全数字)103, 12, 5168float浮点数3.14, 3.4e38decimal十进制数字(高精度&a…...

optool为macho文件增加动态库

对macho文件有一定理解后,了解下optool是如何给macho文件增加动态库等功能的 optool 源码 环境 macOS 13.4 (22F66) Xcode 14.3.1 0x0 编译 下载源码 $ git clone --recurse-submodules https://github.com/alexzielenski/optool.git修改下Deployment Target,比如改成11.0&…...

【C++】类和对象之日期类的实现(构造、运算符重载)

文章目录 一、日期类要实现的函数二、函数实现1、GetMonthDay获取对应月份的天数2、CheckDate检查日期3、Date构造函数4、Print打印日期5、运算符重载1. 、、-、-2. 前置/--、后置/--3. 两个日期类相减(求相差日期) 6、比较7、流插入、流提取&#xff0…...

【Rust 精进之路之第9篇-所有权·核心】规则与移动 (Move):Rust 内存安全基石详解

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025年4月20日 引言:没有 GC,Rust 如何管好内存?答案是所有权! 在我们的 Rust 探索之旅中,我们已经学习了变量、数据类型、控制流、函数和强大的构建工具 Cargo。现在,我们将踏入 Rust 最…...

【任务调度】xxl-job入门

xxl- job 入门 附上笔者写的测视示例:chenmeng-test-demos/demo8-task/task-xxl-job at master cmty256/chenmeng-test-demos 官方文档 XXL-JOB官网 源码仓库地址: Github:https://github.com/xuxueli/xxl-job Gitee:http://g…...

Go语言--语法基础4--基本数据类型--浮点数类型

3 、浮点数类型 浮点型用于表示包含小数点的数据,比如 1.234 就是一个浮点型数据。 Go 语言中的浮点类型采用 IEEE-754 标准的表达方式。 float32 精度是小数点后 7 位 float64 精度是小数点后 15 位。 1. 浮点数表示 Go 语言定义了两个类型 float32 和 floa…...

秘密任务 3.0:如何通过 JWT 认证确保 WebSockets 安全

在之前的文章中,我们探讨了如何通过 WebSockets DTOs 设计实时操作。现在,我们迎来了一项新的挑战:确保 WebSocket 通信在任务执行过程中保持安全。如果敌方潜伏在我们的实时通信渠道中,机密情报可能会被泄露。 任务&#xff1a…...

UID和GID的区别

UID(用户标识符)和 GID(组标识符)是 Linux/Unix 系统中用于管理用户和组权限的核心机制,它们的区别主要体现在作用对象和用途上: 目录 1. 定义与作用对象 2. 主要用途 3. 系统保留范围 4. 用户与组的关…...

【网络】通过Samba实现Window挂在Linux服务器路径

有时候我们去进行内网部署时,会遇到客户或者甲方爸爸说,需要将Linux中的某个路径共享出去到Window上,挂载出比如Z:\这种盘符。通过打开Z盘,来查看服务器的指定目录下的数据。 步骤1: 在Linux中安装samba yum install…...

UE5 UI 教程系列全集

https://www.youtube.com/TheRoyalSkies/search?queryUnreal-5%20UI...

论文笔记(七十八)Do generative video models understand physical principles?

Do generative video models understand physical principles? 文章概括Physics-IQ基准数据集评估协议为什么要创建一个真实世界的Physics-IQ数据集模型物理理解的评估指标动作发生在哪里?空间IoU(Spatial IoU)动作在哪里、何时发生&#xf…...

Viper配置管理笔记

一、什么是 Viper? Viper 是 Go 语言的一个强大工具,就像一个超级管家,专门负责帮你打理程序的各种配置。它能把配置文件(比如 JSON、YAML、TOML 等格式)里的内容读出来,还能监控配置文件的变化&#xff0…...

visual studio无法跳转到函数定义、变量定义、跳转函数位置不准问题解决

参考:https://blog.csdn.net/snakehacker/article/details/135438353 程序有时会出现大部分函数都不能准确的从头文件中正确定位到函数定位,这是因为数据库错乱造成的,可以通过重构数据库来解决,操作方法如下: 菜单栏:工具——选项 文本编辑…...

【Rust 精进之路之第15篇-枚举 Enum】定义、变体与数据关联:表达多种可能性

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025年4月20日 引言:当值拥有“选项”——超越结构体的表达力 在上一篇【结构体 Struct】中,我们学习了如何使用结构体将多个相关的数据字段组合成一个有意义的整体。结构体非常适合表示那些…...

C++ 相关系统软件简介与学习方法【最水的一期】

C 作为一种强大的C 相关系统软件简介编程语言,广泛应用于系统软件开发领域。以下为你介绍几款基于 C 开发的典型系统软件及其特点: 操作系统内核 部分操作系统内核采用 C 开发,例如某些嵌入式操作系统。C 的高性能、底层硬件访问能力和强大的…...

【Linux我做主】GDB调试工具完全指南

Linux下GDB调试工具完全指南:25个核心命令详解与实战示例 github地址 有梦想的电信狗 前言 GDB(GNU Debugger)是Linux开发中不可或缺的调试工具,尤其在定位代码逻辑错误和内存问题时表现卓越。本文基于实际开发经验&#xff0…...

基于SpringBoot3实现MyBatis-Plus(SSMP)整合快速入门CURD(增删改查)

目录 一、快速搭建SpringBoot-Web工程脚手架。 1.1 Spring Initializr 初始化工程。(官方提供) 1.2 工程脚手架初始化详细步骤。(IDEA2024.1.1) 二、MyBatis-Plus的特性与快速上手。 2.1 官网地址与基本特性。 2.2 快速上手技术栈基础。 2.3 Spring Boot2 的 MyBatis-Plus Star…...

短视频电商新纪元:TikTok Shop全球蓝海争夺战进入关键窗口期

一、流量重构:TikTok Shop改写全球电商版图 2024年,全球跨境电商市场迎来新一轮洗牌。当Temu、Shein等平台深陷“低价内卷”泥潭时,TikTok Shop凭借日均30亿次的短视频流量,正在开辟一条“内容即货架”的颠覆性赛道。最新数据显示…...

uniapp-商城-29-vuex 关于系统状态的管理

按照我们前面讲的,vuex,的使用方式: 步骤如下: 1 先创建store 文件夹 2 在 store 中 创建一个 index.js 3、 在 store 中,创建一个modules文件夹 4、在store中,创建一个getters.js 5、在modules文件…...

Qt中修改了UI设计文件后编译不生效问题的解决办法

复制工程过来后: 1、删除build文件 2、删除.user文件,恢复为文件最初的那样 3、执行make distclean,删除所有由先前构建过程生成的文件 4、再次打开工程,修改ui文件编译生效!...

Python 项目环境配置与 Vanna 安装避坑指南 (PyCharm + venv)

在进行 Python 项目开发时,一个干净、隔离且配置正确的开发环境至关重要。尤其是在使用像 PyCharm 这样的集成开发环境 (IDE) 时,正确理解和配置虚拟环境 (Virtual Environment) 是避免许多常见问题的关键。本文结合之前安装 Vanna 库时遇到的问题&#…...

Matlab FCM模糊聚类

1、内容简介 Matlab 211-FCM模糊聚类 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...

标准的JNI (Java Native Interface) 加载函数 JNI_OnLoad

1.JNI_OnLoad 在 Android Native 开发中&#xff0c;JNI_OnLoad 是动态注册本地方法的标准入口点。以下是一个标准实现示例及其说明&#xff1a; JNI_OnLoad 标准实现 #include <jni.h> #include <string>// 声明本地方法对应的 C/C 函数 jint native_add(JNIEnv…...

微信小程序中使用h5页面预览图片、视频、pdf文件

遇到了这么一个需求&#xff0c;需要在微信小程序中点击文件&#xff0c;进行文件预览。 要求&#xff1a; 图片&#xff1a;长图需要宽度100%高度自适应&#xff1b;横图的话宽度100%&#xff0c;高度居中显示视频&#xff1a;视频不管横向还是竖向都居中显示&#xff0c;有…...

A2A协议详解:打造统一的AI代理通信标准,实现多Agent系统协同

A2A 协议中文说明 文章目录 A2A 解决现有 Agent 问题 Agent 生态系统现状当前面临的主要问题为什么需要统一协议&#xff0c;有个标准采用复用 A2A 解决方案 统一通信标准代理能力发现机制安全协作框架灵活的交互模式 A2A 与 MCP 的关系 MCP 简介两者的区别与联系集成场景协同…...

博客系统案例练习2-用户注册-redis

前言 用户注册 [请求]/user/register[参数]contentType: application/json{"userName":"wangwu","password":"456789","githubUrl": "https://gitee.com/bubble-fish666/spring-cloud","email": &quo…...

【人工智能】推荐开源企业级OCR大模型InternVL3

推荐开源企业级OCR大模型InternVL3 文章参考来源: https://huggingface.co/OpenGVLab/InternVL3-14B-Instruct https://www.aivi.fyi/llms/deploy-InternVL3 InternVL3&#xff0c;这是一个高级多模态大型语言模型 &#xff08;MLLM&#xff09; 系列&#xff0c;展示了卓越的整…...

聊天室项目

一.完善注册页面 1.完善注册页面图标&#xff0c;添加检测注册页面各个登录信息是否完善&#xff0c;并且通过信号和槽与自定义一个计时器&#xff0c;当注册完毕后跳转到显示注册完毕的页面。 2.各个坚持注册页面是否按要求的函数 3.完善主页面&#xff0c;设置信号和槽&…...

并发设计模式实战系列(4):线程池

&#x1f31f; ​大家好&#xff0c;我是摘星&#xff01;​ &#x1f31f; 今天为大家带来的是并发设计模式实战系列&#xff0c;第四章线程池&#xff08;Thread Pool&#xff09;​&#xff0c;废话不多说直接开始~ 目录 一、核心原理深度拆解 1. 线程池核心组件 2. 核心…...

大模型应用案例:主动提问式的 AI 面试官(接入 DeepSeek)

目录 核心逻辑 效果演示 技术选型 大模型应用开发框架&#xff1a;langchain-deepseek UI 展示框架—streamlit 代码获取 后续改进想法 本文附带详细的视频讲解&#xff0c;欢迎小伙伴们来支持—— 【代码宇宙017】大模型&#xff1a;主动提问式的 AI 面试官&#xff0…...

算法笔记—动态规划

1137. 第 N 个泰波那契数 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int tribonacci(int n) {if(n0) return 0;if(n1||n2) return 1;vector<int> dp(4);//初始化dp[0]0; dp[1]1; dp[2]1;for(int i3;i<n1;i){//滚动数组优化需要循环dp[i%4]dp[…...

Vue3集成Element Plus完整指南:从安装到主题定制上

一、Element Plus简介 Element Plus是一套基于Vue 3.0的桌面端组件库&#xff0c;由饿了么前端团队开源维护。它提供了丰富的UI组件&#xff0c;能够帮助开发者快速构建企业级中后台产品。 1. 安装与卸载 bash 复制 下载 # 安装最新版本 npm install element-plus -S# 卸…...

初识javascript

1. JavaScript 基础语法 (1) 变量声明 JavaScript支持三种声明变量的方式&#xff1a; var&#xff1a;传统的变量声明方式&#xff0c;存在作用域问题&#xff08;函数作用域&#xff09;。 let&#xff1a;块级作用域变量声明方式&#xff0c;避免了var的作用域问题。 co…...

C++项目 —— 基于多设计模式下的同步异步日志系统(5)(单例模式)

C项目 —— 基于多设计模式下的同步&异步日志系统&#xff08;5&#xff09;&#xff08;单例模式&#xff09; 一个问题单例模式实现1. 单例模式&#xff1a;全局唯一实例功能&#xff1a;实现细节&#xff1a;作用&#xff1a; 2. 日志器的注册与查找功能&#xff1a;实现…...

rag搭建,是如何进行向量匹配检索的?

RAG 里为什么要“向量检索”? 在 Retrieval-Augmented Generation (RAG) 中,我们的目标是让 LLM 能够“回答它本身不知道的内容”。做法是: 将知识(文本)进行向量化,存入向量数据库;用户提问后,也将问题向量化;去数据库里 找出与这个问题最相似的一批知识,返回喂给 …...

k8s 基础入门篇之开启 firewalld

前面在部署k8s时&#xff0c;都是直接关闭的防火墙。由于生产环境需要开启防火墙&#xff0c;只能放行一些特定的端口&#xff0c; 简单记录一下过程。 1. firewall 与 iptables 的关系 1.1 防火墙&#xff08;Firewall&#xff09; 定义&#xff1a; 防火墙是网络安全系统&…...

C++在VR/AR图形处理开发中的实战应用

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…...

Matlab 基于模型参考自适应法和SVPWM的异步电机控制

1、内容简介 Matlab 212-基于模型参考自适应法和SVPWM的异步电机控制 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...

深入浅出讲解UDP检验中如何计算检验和

一、计算机中的进制&#xff1a;二进制与十六进制 1. 十进制&#xff08;Decimal&#xff09; 特点&#xff1a;用0-9表示&#xff0c;逢10进1。 例子&#xff1a;数字 123 表示 110221013100110221013100。 2. 二进制&#xff08;Binary&#xff09; 特点&#xff1a;用0和…...

Python类和对象一(十)

封装&#xff1a; 在创建对象之前&#xff0c;通过类将相关的属性和方法打包到一起&#xff0c;然后通过类来生成响应的对象 定义类&#xff1a; 创建对象&#xff1a; 方法里面有个参数self&#xff1a;new的对象 当我们调用类里面方法的时候&#xff0c;py是怎么知道是哪…...