自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(708)
  • 问答 (4)
  • 收藏
  • 关注

原创 9、 Jenkins实现基础CI操作

第四步、构建好后,让jenkins将jar包推送到我们的目标服务器(docker运行起来)

2024-06-07 02:27:30 1305

原创 3、DDD与CQRS(命令与查询分开)

CQRS(命令和查询职责分离)职责分离(架构上做分解,也就是一个查询模块,一个命令模块(查询模块依赖命令模块))1、查询模块依赖命令模块我们一般都是稳定的去依赖不稳定的了,查询模块是稳定的,命令模块是不稳定的了2、查询和命令模块,不是简单的读写分离,用来构造一些什么需要读取数据结构的也是属于查询模块的(也就是组装也是在查询模块来做的)3、查询模块和命令模块使用的数据库或者表可以相同也可以不相同,甚至与可以是不同的类型数据库

2024-03-09 17:39:11 779

原创 22、7大参数自定义线程池(核心线程数,最大核心线程数。。。拒绝策略(4种))

第二种拒绝策略:(CallerRunsPolicy(哪来的去哪里))这里我们是main线程创建的,所以就是main线程去处理。第一步:5个人进去(2个核心数处理,3个再阻塞队列里面,最大5个个核心线程数(3个在等待阻塞队列满了唤醒))第三个拒绝策略(DisCarPolict(队列满了,丢掉任务(不处理)不会抛出异常))第二步:进去6个人(就会使用2个核心线程和,一个最大线程数里的了,(3个再阻塞队列里))7大参数模型:(这里也说下线程池的运行逻辑)走this方法里(可以看到有7个参数)

2022-11-16 15:54:06 1441

原创 2、Jvm类加载器和双亲委派机制

双亲委派机制(我们创建一个类,类加载器收到这个类加载的请求,他会先向上找类(委托)),找到后再从最上上面检查是否能够加载这个类,能加载就结束,就使用这个类加载器,若无法加载就抛出异常,让子加载器加载)重复步骤。流程是只有当我们的类被委托到最上面再往下查找加载都没有才会是我们自己的AppClassLoader加载我们自己写的类,然后执行main方法。实践2(可以用我们Student类下面的main方法打印类对象的toSting方法)实践1、(无法用我们写的Sting类的main方法)

2022-11-08 08:48:06 276

原创 67、RNN的AI歌词生成案例(构建数据集)

摘要:本文介绍了RNN在AI歌词生成任务中的数据集构建方法。关键点包括:1)每次处理5个连续数据点,但仅使用到倒数第二个词作为输入;2)避免使用最后一个词,因其无法进行后续预测;3)创建专门的数据集对象;4)设计简化的API接口。这种方法既确保了模型训练的有效性,又提高了数据处理的便捷性,为歌词生成任务提供了实用的数据准备方案。

2026-01-11 21:26:44 233

原创 66、RNN的AI歌词生成案例(构建词表)

本文介绍了使用RNN生成AI歌词时构建词表的关键流程。主要包括:1)原始文本分词处理;2)创建去重词表;3)建立词到索引的映射规则;4)将歌词文本转换为词表索引形式,并添加句子分隔符;5)准备RNN/LSTM的输入样本。文中提供了完整的Python实现代码,展示了从原始歌词到数字语料的转换过程,重点强调了在每行句子后加入分隔符的重要性。该流程为后续RNN/LSTM模型训练提供了标准化的文本预处理方法。

2026-01-11 21:25:54 266

原创 65、RNN层(循环网络层的API)

摘要:RNN层的API使用需要定义三个关键参数:input_size(词向量维度)、hidden_size(隐藏层维度)和num_layers(隐藏层数)。输入数据x的形状为(sequence_length, batch_size, input_dim),表示句子长度、批次大小和词向量维度。隐藏状态h0和hn的形状均为(num_layers, batch_size, hidden_dim)。输出y的形状为(sequence_length, batch_size, hidden_dim)。示例代码展示了RNN

2026-01-11 21:24:46 1101

原创 64、RNN(循环网络层)

摘要:RNN(循环神经网络)通过隐藏状态ht处理输入序列,其中ht由当前输入xt和前一状态ht-1加权求和后经激活函数得到。输出层通过全连接层将ht转换为未归一化的打分向量ot(即logits),再经softmax得到概率分布ŷt。整个过程包括词嵌入层(词索引转向量)、RNN层(序列处理)和全连接输出层(生成概率分布)。注意softmax不属于RNN核心单元,而是输出层的后处理步骤。

2026-01-11 21:23:49 359

原创 63、词嵌入层介绍

摘要:词嵌入层通过词索引映射将词语转换为向量表示。首先构建全局词表,为每个词分配唯一索引;然后将句子分词并转换为索引序列;最后通过嵌入矩阵(如PyTorch的nn.Embedding)将索引映射为固定维度的向量。测试示例展示了如何将中文分词结果转换为128维词向量,相同词语在不同位置会获得不同向量表示。该过程实现了从离散符号到连续向量空间的转换,为后续NLP任务提供数值化输入。

2026-01-11 21:22:41 370

原创 62、RNN介绍

摘要:RNN是一种处理序列数据的神经网络,其核心结构包括词嵌入层(将文字转为向量)、隐藏层和输出层。计算过程分为两步:首先通过xt和h(t-1)的加权求和及tanh激活函数得到ht,再对ht加权求和并激活得到预测值yt。输出层激活函数根据任务类型选择:分类用softmax,二分类用sigmoid,回归用identity。RNN通过引入隐藏状态ht实现时序信息传递,计算过程可简化为循环更新h值。

2026-01-11 21:21:29 369

原创 58、池化层介绍

池化层是CNN中的重要结构,主要包括最大值池化和平均值池化两种类型。最大值池化(nn.MaxPool2d)提取局部区域的最大值,能更好保留纹理特征,因此更为常用;平均值池化(nn.AvgPool2d)则计算区域均值,具有平滑效果。两者都不会改变通道数(各通道独立处理),这与卷积层不同(卷积核数量决定输出通道数)。池化层通过下采样减少数据量,提高计算效率并增强特征不变性。

2026-01-11 21:16:43 277

原创 58、池化层介绍

池化层是CNN中用于降维的重要操作,主要包括最大值池化和平均值池化两种方式。它们通过在局部区域取最大值或平均值来缩减特征图尺寸,但不会改变通道数(与卷积层不同)。PyTorch中对应nn.MaxPool2d和nn.AvgPool2d实现。其中最大池化能更好保留纹理特征,实际应用更为广泛。池化层通过降低空间维度减少计算量,同时保留重要特征,提高模型效率和泛化能力。

2025-12-25 23:31:46 258

原创 57、卷积层(api介绍)

本文演示了使用PyTorch的卷积层(Conv2d)提取图像特征图的过程:1)读取图像并转换为tensor;2)调整维度顺序为NCHW格式;3)定义卷积层(3输入通道、4输出通道、3×3核);4)执行卷积运算;5)转换特征图维度为可视化格式(HWC);6)将特征图转为numpy数组并显示。关键步骤包括张量维度转换(permute/unsqueeze)、卷积参数设置以及特征图可视化前的detach处理。测试结果显示成功提取了4个638×638的特征图。

2025-12-25 23:31:11 217

原创 56、卷积层(特征图大小计算)

摘要:卷积神经网络中特征图大小的计算公式为(N-F+2P)/S+1,其中N为输入尺寸,F为卷积核大小,P为填充量,S为步长。计算过程包括:1)输入与卷积核尺寸差(N-F);2)考虑填充(2P);3)确定移动次数(差/S+1)。对于非正方形输入(如5×7),需分别计算行列尺寸。该公式反映了卷积核在输入上的滑动覆盖过程,每次移动产生一个输出值,最终形成特征图。

2025-12-25 23:30:09 274

原创 55、卷积层(多通道多卷积核计算)

卷积神经网络中,卷积层的输出特征图数量由卷积核数量决定。每个卷积核会对输入的多通道数据进行计算,生成一个独立的特征图。例如,当使用两个卷积核时,无论输入通道数多少,最终都会输出两个特征图。这一特性使得网络能够提取输入数据的不同特征,为后续处理提供多样化的特征表示。

2025-12-25 23:29:36 340

原创 54、卷积层(多通道单卷积核计算)

卷积层在单卷积核多通道计算时,每个输入通道需对应一个卷积核进行点乘,然后将各通道结果求和合并,最终输出单通道特征图。该过程通过逐通道计算和跨通道累加实现空间特征提取。

2025-12-25 23:29:00 201

原创 53、卷积层(步长Stride)

卷积层步长(Stride)指卷积核在图像上滑动的步幅长度。步长设置直接影响特征图尺寸和计算复杂度:较大的步长会缩小特征图尺寸,降低计算量,同时增大感受野;较小的步长则保留更多细节信息。通常默认步长为1,在需要降采样时可增大步长。步长选择需权衡计算效率和特征保留的需求。

2025-12-25 23:28:17 132

原创 52、卷积层(填充paddinng)

卷积层通过填充(padding)可以保持输入输出的空间维度一致。当步长为1并在周围填充一圈0时,边缘像素的计算次数从1次增加到4次,有效保留了边缘信息。这种方法既防止了特征图快速缩小,又提升了模型性能,是卷积神经网络中常用的维度控制技术。填充操作使输出尺寸增大,确保网络能够充分提取图像边缘特征。

2025-12-24 23:36:19 224

原创 51、卷积层(计算规则)

卷积层通过线性矩阵运算(点乘求和)进行特征提取,使用称为Filter的卷积核生成特征图。边缘计算问题可通过Padding填充解决。卷积层具有权重共享(同一卷积核处理全图)、局部连接(小卷积核识别局部特征)和空间不变性(卷积核移动方式固定)三大特点。每个卷积核相当于一个神经元,实现高效的特征提取。这种结构有效降低了参数数量,同时保留了图像的空间信息。

2025-12-24 23:35:45 430

原创 50、CNN的概述介绍

摘要:卷积神经网络(CNN)是一种专门处理图像数据的深度学习模型,其核心结构包括卷积层、池化层和全连接层。卷积层通过滑动窗口(卷积核)提取局部特征,池化层压缩特征信息(如最大池化),全连接层完成最终分类。CNN通过权重共享减少参数,保留空间结构,适用于图像分类、目标检测等任务。与全连接网络相比,CNN更高效且专门针对图像处理,通过"卷积找特征-池化留重点-全连接判断"的流程实现图像分析。典型应用包括人脸识别、医学图像分析等。

2025-12-24 23:35:13 1100

原创 49、图像的相关知识

本文介绍了图像分类和处理的Python实现方法。图像可分为4类:二值图像(0/1)、灰度图像(0-255)、索引图像(矩阵+颜色索引)和真彩RGB图像。使用matplotlib处理图像的基本流程包括:导入库→读取图像(转为NumPy数组)→显示或处理。详细说明了彩色和灰度图像在内存中的表示形式,以及显示图像的步骤。文章还对比了matplotlib和OpenCV的图像读取差异,并提供了深度学习中的典型处理流程:读取→归一化→转置维度。最后通过测试代码展示了全0/1图像和实际图像的处理效果。

2025-12-24 23:34:26 333

原创 48、ANN手机价格分类案例

本文介绍了一个基于PyTorch的手机价格分类模型构建流程。首先通过数据预处理(标准化、特征标签分离、转换为张量)准备训练集和测试集。模型采用多层神经网络结构,包含ReLU激活函数和Dropout层以防止过拟合。训练过程使用Adam优化器和交叉熵损失函数,经过100轮训练后准确率达到90%。评估结果显示模型在测试集上的准确率为72.6%,F1-score为72.76%,表明模型具有较好的分类性能。文章还详细解释了准确率、精确率、召回率和F1-score等评估指标的计算方法和实际意义。

2025-12-11 00:43:30 1847

原创 47、正则化(批量归一化(BN))

摘要:批量归一化(BN)本质是标准化处理与可学习重构的结合,通过先标准化数据(可能损失信息)再进行线性重构(γ*x+β)来恢复部分信息。研究表明,BN需配合特征提取层(Linear/Conv)使用效果更佳。实验验证了BN在1D/2D数据上的应用,其中2D数据可直接处理,1D数据需先经线性层转换。测试结果显示BN能有效调整数据分布,输出结果呈现标准化特征。该技术由Ioffe和Szegedy于2015年提出,命名"归一化"旨在强调将数据归一到稳定分布的目的。

2025-12-11 00:42:20 280

原创 46、正则化(dropout随机失活)

Dropout正则化是一种防止神经网络过拟合的有效方法。它通过在训练时随机以概率p让神经元失活(通常p=0.2-0.5),并对保留的神经元进行1/(1-p)倍缩放。这种机制相当于训练多个子网络,破坏神经元间的固定依赖关系,强制学习更鲁棒的特征。测试时所有神经元保持激活。实验显示,Dropout能使单个样本产生多个变体,实现类似数据增强的效果。代码示例演示了PyTorch中Dropout层的实现过程,包括激活后随机失活和缩放操作。这种方法特别适用于参数多、数据少的场景,能有效提升模型泛化能力。

2025-12-11 00:41:30 530

原创 45、学习率衰减策略总结

2025-12-11 00:40:44 202

原创 44、学习率衰减策略(指数间隔学习率衰减)

本文介绍了PyTorch中的三种学习率衰减策略实现方法。首先展示了指数间隔学习率衰减(ExponentialLR),其公式为lr_new = lr_old * gamma^epoch,gamma通常设为0.95。然后通过代码演示了三种衰减策略:1)固定间隔衰减(StepLR),每50轮衰减0.5倍;2)多间隔衰减(MultiStepLR),在指定轮数(50,100,125,160)衰减0.5倍;3)指数衰减(ExponentialLR),每轮衰减0.95倍。每种策略都使用SGD优化器,并绘制了学习率随训练轮

2025-12-11 00:40:07 175

原创 43、学习率衰减策略(指定间隔学习率衰减)

本文展示了两种PyTorch学习率衰减策略的实现。第一种是固定间隔衰减(StepLR),每50个epoch学习率衰减为原来的一半。第二种是指定间隔衰减(MultiStepLR),在epoch达到[50,100,125,160]时衰减学习率50%。两种方法都通过SGD优化器训练简单线性模型,并绘制学习率随epoch变化的曲线。测试结果表明,StepLR呈现规则的阶梯式下降,而MultiStepLR在指定milestone处出现学习率突变。两种策略都能有效实现学习率动态调整,适用于不同的训练场景需求。

2025-12-11 00:39:16 172

原创 42、学习率衰减策略(等间隔学习率衰减)

摘要:本文演示了PyTorch中StepLR学习率衰减策略的使用。通过SGD优化器配合StepLR调度器,实现了每50个epoch将学习率衰减一半的效果(初始lr=0.1)。关键点在于:1)scheduler.step()需在每个epoch后调用;2)实际学习率更新由内部计数器控制;3)通过get_last_lr()获取当前学习率。实验使用200个epoch进行验证,最终学习率变化曲线(每50epoch减半)通过matplotlib可视化展示,证实了StepLR的正确实现方式。

2025-12-09 19:50:19 194

原创 41、学习率优化(背景介绍)

本文介绍了神经网络训练中的关键参数学习率及其优化方法。学习率过大易导致loss震荡,过小则收敛缓慢,通常需人工设置。文章阐述了前向传播过程(z=wx+b及激活函数)和反向传播机制(w_new=w_old-学习率*梯度),以及BP算法如何通过损失值(真实值-预测值)来优化模型参数。这些内容是理解神经网络训练过程的基础知识。

2025-12-09 19:49:18 178

原创 40、梯度下降优化方法(Adam)

本文对比了四种梯度下降优化方法的实现效果。通过PyTorch框架测试了Momentum、AdaGrad、RMSProp和Adam四种优化器在简单二次函数上的表现。测试结果显示:Momentum方法两次迭代后权重从1.0降至0.9711;AdaGrad收敛较慢,降至0.9830;RMSProp下降最快,降至0.8329;Adam方法表现介于Momentum和AdaGrad之间,降至0.9800。实验代码清晰展示了不同优化器的参数设置和更新过程,为理解各优化算法的实际表现提供了直观参考。

2025-12-09 19:48:38 292

原创 39、梯度下降优化方法(RMSprop)

本文比较了三种梯度下降优化方法:带冲量的SGD、Adagrad和RMSprop。通过PyTorch实现测试,结果显示:带冲量的SGD和Adagrad在前两次迭代中权重更新相似(0.99→0.98),而RMSprop更新幅度更大(0.9→0.8)。RMSprop在Adagrad基础上引入指数加权平均,能更有效地调整学习率。测试代码展示了不同优化器在简单二次函数上的表现差异,为选择优化算法提供了参考依据。

2025-12-09 19:47:01 144

原创 38、梯度下降优化方法(adaGrad)

本文对比了两种优化算法的实现效果:SGD with Momentum和AdaGrad。通过PyTorch代码测试,当初始权重为1.0时,Momentum方法两次迭代后权重降至0.9801,而AdaGrad方法降至0.9800。两种方法在第一次迭代时都使权重降至0.9900,但第二次迭代时AdaGrad的下降幅度略大(0.0100 vs 0.0099)。测试结果表明,在简单二次函数优化场景下,两种优化器表现相似,但AdaGrad对历史梯度平方和的自适应调整使其具有更稳定的学习率调整特性。

2025-12-06 09:55:23 166

原创 37、梯度下降优化方法(动量法Momentum)

摘要:本文介绍了动量法(Momentum)在梯度下降优化中的应用。动量法通过引入指数加权平均来优化梯度计算,公式为St=βSt-1+(1-β)Gt,其中β为权重调节系数(通常设为0.9)。该方法将参数更新从w新=w旧-学习率Gt变为w新=w旧-学习率St。文中提供了使用PyTorch实现动量法的测试代码,展示了两次迭代后的权重和梯度变化情况。测试结果表明,随着迭代进行,权重逐渐减小,梯度也随之更新。

2025-12-06 09:54:22 482

原创 36、指数移动加权平均

本文介绍了指数移动加权平均(Yt)的计算方法,其中St表示当前时刻的加权平均,St-1为前一时刻的加权平均。参数β通常设为0.9,这使得当前梯度影响较小(0.1),而主要依赖历史数据的加权平均(0.9)。随着计算时间推移,β的指数效应会使平均值变化更加平缓,体现了"移动"的特征。该方法通过调整β值可以控制平均值的平滑程度,β越大结果越稳定。

2025-12-06 09:53:03 214

原创 35、反向传播(BP算法)

本文介绍了神经网络中的反向传播(BP)算法原理。算法通过计算损失函数值,从输出层反向传播误差,结合梯度下降法(w新=w旧-学习率*梯度)更新权重。前向传播过程包括加权求和和激活函数计算,输出层使用MSE损失函数计算预测值与真实值的误差。反向传播时,先计算各权重梯度(如w5的梯度),然后按公式更新权重和偏置。更新完成后可重新计算损失值,进行下一轮训练迭代。整个过程通过不断调整参数来最小化损失函数。

2025-12-03 20:32:05 296

原创 34、梯度下降回顾

摘要:梯度下降是优化损失函数的常用方法,其核心在于通过迭代寻找损失函数的最小值。不同梯度下降算法的本质区别在于使用的批次规模,包括批量梯度下降(全数据集)、随机梯度下降(单样本)和小批量梯度下降(折中方案)。批次大小的选择直接影响计算效率和收敛速度,需要根据具体场景权衡。

2025-12-03 20:30:20 188

原创 33、损失函数(回归任务损失函数SmoothL1Loss)

摘要:本文介绍了三种回归任务损失函数:L1 Loss(MAE)、L2 Loss(MSE)和Smooth L1 Loss。L1 Loss计算绝对误差的平均值,L2 Loss计算平方误差的平均值。Smooth L1 Loss结合了L1和L2的优点,在[-1,1]区间使用L2保证光滑性,其他区间使用L1防止梯度爆炸。通过PyTorch代码示例演示了三种损失函数的计算过程,测试结果显示在相同输入下,L1 Loss为2.67,MSE为10.44,Smooth L1 Loss为2.09,验证了不同损失函数的特性差异。

2025-12-03 20:28:32 329

原创 32、损失函数(回归任务损失函数MESLoss)

本文对比了L1损失(MAE)和L2损失(MSE)的计算差异。通过PyTorch示例代码展示了3x3矩阵的预测值与真实值之间的损失计算:L1损失计算绝对误差均值(结果为2.67),而L2损失计算平方误差均值(结果为10.44)。L2损失由于平方运算,在误差较大时容易出现梯度爆炸问题。测试结果表明,对于相同输入数据,L2损失值显著大于L1损失值,验证了平方放大大误差的特性。

2025-12-03 20:26:48 239

原创 31、损失函数(回归任务损失函数L1Loss)

摘要:L1损失函数(MEA)通过计算预测值与真实值绝对差值的均值实现回归任务,具有主动产生稀疏性的特点。该特性源于L1正则化的数学优化机制,倾向于将大量权重参数归零,形成"精英团队"式的特征选择。相比之下,L2正则化仅均匀压缩权重而不产生零值。实验代码展示了L1损失的计算过程,当预测值与真实值差异为[2,2,2,2,0,1,4,5,6]时,平均损失结果为2.67,验证了其绝对值求和的特性。

2025-12-03 20:20:09 618

原创 30、二分类和多分类的区别

摘要:本文比较了二分类和多分类任务在标签表示上的区别。二分类常用单值类别索引(0/1)或二维one-hot编码(如[[1,0],[0,1]]),而多分类使用多值类别索引(0到K-1)或K维one-hot编码(如[[1,0,0],[0,1,0]])。关键判别方法是:二分类标签值仅为0/1或one-hot向量长度为2;多分类标签值包含0到K-1或one-hot向量长度K>2。两种任务都支持类别索引和one-hot两种表示格式,但前者更常用。

2025-12-03 20:18:58 1028

JUC最详细思维导图,一次了解读写锁,可重入锁,Cas原理,volatile 关键字原理

JUC最详细思维导图,一次了解读写锁,可重入锁,Cas原理,volatile 关键字原理

2023-06-27

扫雷图片资源,需要自取 关注点赞收藏

扫雷图片资源

2023-06-04

扫雷源码,需要自取,关注点赞收藏

扫雷源码

2023-06-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除