RNN循环神经网络
前言对于图像识别,数据顺序不重要,因为图像像素是独立无序的。然而,对于文本、股票、天气和语音等具有时间或逻辑顺序的数据,顺序对结果有显著影响。例如,文本中词语的顺序改变会导致意义完全不同,而股票和天气数据的顺序也很重要,因为后续数据可能受之前数据的影响。 文本理解中,顺序同样关键,如古诗中诗句顺序的改变会改变整首诗的意境。因此,在处理具有时间或逻辑顺序的数据时,必须考虑顺序的重要性,并设计相应的模型来利用数据的前后关系,如循环神经网络(RNN),以获得更准确和有意义的结果。 一、模型架构1.1 整体结构RNN(循环神经网络)通过在网络内部添加循环连接,使其能够利用先前时间步的信息,从而在处理序列数据时能够捕捉和利用结构信息。 RNN在处理一个序列,比如一句话或者一系列的数字时,会同时考虑当前的数据和之前的数据。它通过更新一个内部的“记忆”(隐藏状态),来“记住”过去的信息,并用这些信息来帮助理解新的数据。这样,RNN就能捕捉到数据中的顺序和模式,就像你通过记忆来理解连续剧一样。这一过程可以通过数学公式简化为: 其中,S_t表示在时间步t的隐藏状态,是当前时间步t的输入,U...
NLP特征工程
前言自然语言处理(NLP)是计算机科学与语言学交叉领域,旨在使计算机能够理解、生成和处理人类语言,通过算法和模型分析语言结构与语义,实现机器翻译、情感分析、语音识别等功能,推动人机交互智能化发展。 一、NLP中的特征工程特征工程在自然语言处理(NLP)中是将文本数据转换为机器学习模型可处理的数值形式的过程,通过提取词性、语法、相似度等信息,将非结构化的文本转化为对预测有用且模型能理解的特征。 说人话就是机器理解不了人类常用的字母和汉字,如果我们要进行文本处理就必须将这些转换为数值形式,也就是词向量,用这些向量来代替文字体现他们之间的语义关系,进而帮助计算机理解文本信息 举个例子,现在有“猫”,“狗”,“爱情”三个词语,通过词向量技术,将他们映射到向量空间(0.2,0.1,0.3),(0.2,0.2,0.2),(-0.4,-0.5,-0.2),在词嵌入模型的最初始阶段,单词的向量通常是由随机初始化的,需要经过模型的训练(后续会介绍)。例如通过这些向量,我们可以得到他们的余弦相似性 1.1 独热编码 one - hot一个简单示例: 1.2 n-gramsn-grams是一种...
算法题记录
2025年8月6日 123456789101112131415161718192021222324252627282930313233number_to_letter = {chr(96 + i): i for i in range(1, 27)}def fn(str1,str2,number_to_letter): steps = [] length = len(str1) for i in range(len(str2[:length])+1): # print("---") step = 0 # 第一个循环是取出所有子串 str2_ = str2[i:i+length] if length > len(str2_): break print(str1,str2_) for i in range(len(str1)): ...
面试之卷积基础知识
卷积基础知识问:简述卷积基本操作,分析其与全连接层的区别卷积操作是卷积神经网络的核心,用于提取数据的局部特征,他的两大特性是局部连接,参数共享。 卷积层通过一个卷积核在输入数据上滑动,逐步将与卷积核对应的元素相乘后求和得到一个标量值,最终生成一个输出特征图,通过局部连接和参数共享,能够高效的提取局部特征,同时减少参数量 而全连接层中的不同神经元是的参数不同,数量较多,计算量也更大。他将卷积层提取的特征进行综合处理,输出最终的预测结果,适合处理一维的特征向量。 问:卷积神经网络中,如何计算各层感受野大小感受野是指网络中某个神经元能够感知到的输入数据的区域大小,感受野越大,神经元能够感知到的输入数据的范围就越广$$R_i = k_i + (R_{i-1} - 1) \cdot s_{i-1}$$其中R是感受野,k是卷积核大小,s是步长 问:卷积层,池化层,全连接层的作用是什么? 卷积层:提取输入数据的局部特征,通过多层结构逐步提取更高级别的特征。(特征提取) 池化层:降低特征图的空间维度,保留重要信息,减少计算量,增强平移不变性。(降维) 全连接层:综合处理提取的特征,输出...
基于AutoDL云服务器部署yolov11项目及模型分析
前言因为yolov11训练需要的配置要求已经超过我电脑了,所以我还是在AutoDL上租用一台GPU来跑,租用云服务器实际上就是租用一台装配了GPU显卡的Linux虚拟机来跑自己的模型,那么我们就需要提前把自己的代码和数据通过传输软件传上服务器(也可以直接拖到窗口,但是太慢了,这里我用的软件是Xftp),下面配备了比较完整的流程,在前面的yolov5相关操作教程中写的也比较详细了,这篇博客主要是用来分析yolov11训练后产生的结果文件。 一、项目部署教程我们在注册并登录AutoDL后,选择合适型号的GPU,建议如果是学习过程的话可以租用便宜一点的,比如2080ti,相对性能也够用了 记得在选择镜像时去使用就已经创建好的yolov11镜像,可以免去很多麻烦 在容器实例中选择刚才租的实例,选择更多–无卡模式开机,这样我们在传输数据时成本就要低一点,不然他就会一直按照0.88元来扣费,无卡模式除了没有GPU,其他都是一样的 打开后我们进入vscode,下载扩展远程资源管理器 点击图标输入ssh指令和密码(在容器实例上复制),我之前登录过,就只用输密码了 完成后我们就成功...
yolov5源项目部署教程
前言:这一篇目主要用于介绍yolov5的实战部分,包括如何部署项目以及模型的训练和推理,最后还会结合orc技术来进行车牌识别项目实战 一、项目来源项目可以在 github 搜到:【https://github.com/ultralytics/yolov5】(选择合适的预训练模型,可以直接下载,也可以直接git到本地) 将下载好的文件解压,最后在vscode中打开的文件目录如下,一定要确保项目名即为最开始的yolov5中没有另外一层yolov5文件结构: 二、环境配置首先需要创建虚拟环境(这里我是直接在云GPU上部署的项目,可以直接选择别人已经创建好并且很稳定的虚拟环境) 对于 yolo 系列目前来说,需要安装的 python 版本 >= 3.8 的,pytorch 版本>= 1.8 如果是在本地部署的话,那么在创建激活并切换环境后需要运行如下命令安装依赖包 1pip install -r requirements.txt 注意:这里运行后只能默认是CPU的版本,如果想安装GPU版本还需要安装合适版本cuda后去官网下载对应pytorch,...
yolov1-v3原理解析
一、yolov1导航YOLOv1YOLOV1 论文地址:【https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Redmon_You_Only_Look_CVPR_2016_paper.pdf?spm=5176.28103460.0.0.359a5d27d0cimU&file=Redmon_You_Only_Look_CVPR_2016_paper.pdf】 YOLOV1 论文中文翻译地址:【https://blog.csdn.net/muye_IT/article/details/124612829】 1.1、网络结构yolov1是在GoogLeNet 的基础上进行改编的一种单阶段目标检测网络,把目标检测转变成一个回归问题,实现端到端的检测 包含24个卷积层,4个池化层,2个全连接层 缺陷:yolov1使用的仍然是全连接层,这就导致主干结构的输入要求必须是448x448的固定尺寸 问:那为什么在预训练阶段可以输入224x224的图像呢? 在预训练阶段,YOLOv1 使用 224×224 的图...
yolo目标检测基础
一、概念目标检测需要识别图片或视频帧中的物体是什么类别,并确定他们的位置**(where and what)**,通常用于多个物体的识别,并为每个示例提供一个边界框和类别标签。 目标检测的本质:使用边界框将物体在图中圈出,边界框上会存在两个指标:类别信息,置信度 yolo(you only look once):是一个单阶段的目标检测算法,能够用于实时监测 人工智能领域的上游任务和下游任务 上游任务通常是指为后续任务提供基础支持的任务,主要关注数据的收集、处理、模型的预训练等基础性工作。这些任务的输出通常是一个通用的模型或者数据集,可以被多个下游任务复用 下游任务是指在上游任务的基础上,针对具体的业务场景或应用需求进行的模型微调和应用开发。这些任务通常具有明确的目标和应用场景,需要在预训练模型的基础上进行进一步的优化和调整,以满足特定任务的需求 二、数据标注数据标注是在图片中框选标注出我们需要模型训练用来检测的实例,用作监督模型训练的标签 步骤: 创建一个专门用于数据标注的虚拟环境 1conda create -n yololabel python=3.12 激活...
经典神经网络之ResNet
前言ResNet通过引入残差结构解决了深层网络中的梯度消失、梯度爆炸及退化问题,借助Batch Normalization加速训练,成功搭建了超深网络(突破1000层)。 一、残差结构(residual)(★)ResNet中的残差块(Residual Block)是其核心组件,用于解决深层网络训练中的梯度消失和退化问题,让实现更深层的网络成为可能。 残差块包含两条路径: 一条是主路径,用于学习输入和输出之间的残差(即差异) 另一条是捷径路径,直接将输入添加到主路径的输出上,这里的添加是对应元素进行数值相加 二、批量归一化(Batch Normalization)(★)Batch Normalization(批量归一化)用于加速神经网络的训练过程并提高其稳定性。 它通过在每个小批量(Batch)上对输入数据进行归一化处理,使每层的输入数据具有均值为0、标准差为1的分布。 三、模型代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152...
经典神经网络之GoogLeNet
前言GoogLeNet 于 2014 年由 Google 团队提出,凭借其创新的 Inception 结构(融合多尺度特征)、1×1 卷积核降维以及用平均池化层替代全连接层(大幅减少参数)等设计,斩获当年 ImageNet 分类任务第一名。 一、inception结构和之前提到的线性排列的网络结构不同,inception模块采用并联结构,将特征同时输入多个分支,最后将每个分支得到的等宽等高的输出进行拼接 这里大小为1x1的卷积层,目的是为了降维(使用通道数更小的卷积核来改变原结构通道数),减少模型训练参数,减少计算量 二、全局平均池化层GAP平均池化层通过计算特征图的平均值将其压缩为全局特征表示,减少参数量和计算量,避免过拟合,提升泛化能力和训练效率,从而可替代全连接层。 在大多数实际应用中,特征图的通道数 ( C ) 与类别数 ( N ) 不同。因此,全局池化后的输出 ( (1, 1, C) ) 通常需要通过一个全连接层将其映射到类别数 ( N )。全连接层的作用是将特征向量 ( C ) 映射到类别数 ( N )。 三、模型代码(训练自己的数据集)3.1 模型结构代...