AI大模型学习笔记|神经网络与注意力机制(逐行解读)
来源分享链接:通过网盘分享的文件:详解神经网络是如何训练的
链接: https://pan.baidu.com/s/12EF7y0vJfH5x6X-0QEVezg 提取码: k924
内容摘要:本文深入探讨了神经网络与注意力机制的基础,以及神经网络参数训练的过程。以鸢尾花数据集为例,详细讲解了通过反向传播算法调整网络权重和偏置以最小化损失函数的方法。讨论涵盖了权重初始化、损失函数定义、选择优化器、前向传播和反向传播,以及模型性能评估。特别强调了从线性函数到多分类问题时,使用Softmax函数和交叉熵损失函数进行优化的重要性。本文细致讲解机器学习模型原理及其实现过程对初学者的必要性,确保模型在训练和测试集上的表现,并讨论了模型收敛的判断标准,旨在鼓励深入理解机器学习的核心概念。
备注:学习使用并不商用,若有侵权联系删除。
(1)神经网络和Attention机制参数训练过程详解
1. 对话开始于探讨神经网络和注意力机制的基本概念后,转而深入讨论这些模型内部参数的具体训练方法,突出了对抽象训练过程的需要解析。
2. 为了具体化这一抽象概念,讨论中引入了著名的“鸢尾花数据集”作为实例,这是一个用于分类任务的经典数据集,包含花瓣长度、花瓣宽度、花萼长度和花萼宽度等特征。
3. 在讨论中明确了,通过使用如鸢尾花这样的数据集,可以实际演示神经网络模型如何学习从输入特征中提取有意义的表示,并最终进行准确的分类任务,从而具体化了模型训练的过程和目标。
1. 我们计划在运行时加载数据,而不是一开始就启动程序,这是出于对GPU资源的考虑,因为我们无法使用GPU。
2. 所选择的数据加载自SK learn库,具体是通过调用load erris函数,随后从返回的数据集中选择前四列作为特征,而目标标签则取自最后一列。
3. 为了便于可视化,我们将处理后的数据转换并存入Pandas的DataFrame中,这样在打印时即可直接呈现可视化效果。
4. 通过应用train test split函数,我们将原始数据集划分为训练集和测试集,分别命名为data chain和data test,这为模型训练和评估提供了基础。
-
(2)构建基于Python的神经网络函数实例
1. 对话内容始于讨论一个名为“WW1到W4”的过程,这个过程初期包含随机元素,目标是通过学习调整这些元素,使它们能够准确地将一组输入X1到X4映射到正确的输出Y。
2. 为了实现这一目标,决定使用Python编程语言来定义这样一个学习过程。这涉及到利用Python的PyTorch库,因为PyTorch提供了构建和训练神经网络的强大工具。
3. 首先,引入PyTorch库并从其中导入神经网络(NN)模块,这标志着正式进入神经网络的构建与训练领域。
4. 定义了一个名为“FE”的类,这个类是神经网络模块的实例,旨在封装和表达整个学习过程中的F函数,即输入X到输出Y的映射规则。
5. 这个“FE”类被设计为继承自PyTorch的某个特定模块(这里标记为NN点19),这确保了它能够利用神经网络的高级功能,包括前向传播、反向传播和参数优化等核心机制。
1. 构造函数首先必须调用父类的构造函数,初始化对象属性,如W1到W4和B,通过直接赋值方式设定,例如W1设为0.1,被视为参数;同样地,W2、W3、W4和B也被初始化,确保了网络层参数的预设。
2. 在定义好的构造函数内,参数W1到W4和B被明确设定,使用具体数值如0.1、0.2等,这些数值被初始化并作为网络层的基础权重和偏置。
3. 运算流程的定义集中于`forward`方法中,这是网络层的关键执行点,接收输入X1到X4作为参数,并返回相应的输出结果,表明了数据流的处理逻辑和最终输出形式。
4. `forward`方法接收四个输入参数X1到X4,表明了网络层处理输入数据的结构和方式,即如何将输入信号通过定义好的权重和偏置进行计算,最终得到输出。
1. 创建了一个名为F1的类实例,并尝试调用它,传递了X1、X2、X3、X4四个参数(5.1, 3.5, 1.4, 0.2),预期得到一个不为零的Y值(1.7100),但实际结果不符合预期。
2. 由于初始函数实现较为冗余,即重复了W1到W4的写法,提议通过将W1到W4合并到一个向量中来改进函数设计,以简化代码并提高效率。
3. 本次对话未直接说明如何具体改进函数,但强调了优化函数结构的重要性,以避免重复代码并可能提高算法的执行效率。
-
(3)改进函数以实现向量化处理
1. 对话内容描述了如何将W1和W4合并成一个向量W,并使用这个向量与输入向量X进行点乘运算,点乘实质上是W与X的逐元素相乘再求和,加上传递偏置B得到最终结果。
2. 此过程简化了之前的复杂描述,通过向量和矩阵的运算,使得神经网络中的层计算更加高效和清晰。
3. 进一步解释了点乘操作如何在神经网络中实现不同权重与输入特征的加权求和,这是一层神经网络的核心计算步骤。
4. 提及了偏置项B在神经网络计算中的作用,它为神经元的输出提供了固定的偏移量,增强了模型的表达能力。
5. 讨论了单条数据处理与批量数据处理的区别,指出批量处理可以提高计算效率,减少重复计算,是训练神经网络时常用的优化手段。
1. 对话内容开始于描述一系列数据点,如“这是第一条数据,这是第二条数据,这是第三条数据”,这表明了数据的采集或准备过程。
2. 接着讨论了如何使用参数向量W来计算数据的输出,特别指出W是一个列向量,然后需要对其进行转置以便进行矩阵乘法操作,从而“拿W这一行乘上这一个batch”。
3. 计算过程描述为通过矩阵乘法操作,将单个W向量与一批(batch)数据进行运算,目的是为了批量计算多个数据点对应的F值,即“批量的把三条数据的对应的F都算出来了”。
4. 最后,整个过程的结果会被整合到一个向量中,这表明最终输出是一个集合了所有输入数据经过计算后的向量形式,反映了模型对整个批次数据的综合处理结果。
-
(4)定义和计算损失函数
1. 对话首先定义了D表示包含所有错误数据集的数据集,X代表数据集的前四列特征,Y表示最后一列的标签或目标值,这表明了在机器学习或数据分析中如何使用数据集的不同部分。
2. 提到计算过程涉及对每一条数据对X进行预测以得到FX(预测值),然后计算预测值与实际值Y(YI)之间的差异,并将这个差异平方,最终对所有数据点的平方误差求平均,得到均方误差(MSE),这个过程是评估模型预测性能的一种常用方法。
3. 计算均方误差(D)时,涉及对所有数据点的平方误差求平均,这一步骤确保了误差评估的全面性和一致性,反映了模型在数据集上的整体表现。
4. 对话中指出,通过遍历数据集中的每一条数据,分别计算预测值与真实值之间的均方误差,最后对所有误差求平均,这种方法可以客观、公正地评估模型预测的准确性。
5. 这段对话强调了在评估机器学习模型性能时,均方误差(MSE)作为关键指标的重要性,它不仅衡量了预测值与实际值之间的差距,而且通过求平均确保了评估的全面性和模型预测的可靠性。
1. 对话内容涉及到的是一个数据分析和机器学习的过程,特别是关于如何处理数据集进行训练。
2. 在这个过程中,数据是以batch的形式被处理的,每次处理的数据量是四条,即每批数据包含四条记录。
3. 训练集(data train)是一个pandas对象,通过iloc进行数据提取,这里提到的是从数据的第四行开始取到第八行,并且选取除了最后一列之外的所有列,实际上就是选取了前四列作为特征。
4. 这样的操作结果是生成了一个四行四列的矩阵(X),其中四行代表四条数据记录,四列代表了四种特征(如花瓣长度、宽度等);同时,从原数据的最后一列提取出Y值,作为目标变量。
5. 训练过程中,通过将构建好的X batch(特征数据)输入到模型中,模型能够计算出每个X batch对应的Y预测值,这些预测值与实际的Y值(真实标签)一起被用来计算损失(误差),从而帮助模型学习和优化。
1. 对话内容开始于讨论如何将数据集处理并放入一个列表中,以便进行后续的损失计算。
2. 讨论了在完成整个数据集的遍历后,需要将这个列表中的所有损失值加起来,但重要的是,提到了由于损失函数中包含“mean”,实际上只对一个批次的损失进行了求和,没有除以总数,这一点需要更正,应该对损失列表的长度进行除法,从而得到平均损失。
3. 提及了代码尚未执行,需要从当前指向上继续运行,这暗示了之前提到的概念和函数需要被实现。
4. 对话涉及了关于如何定义和运行批量化函数,讨论了批量化在机器学习中的重要性,以及如何实现数据集的向量化处理。
5. 最后,计算了在特定参数设置(W1为0.1,W4为0.4)下的损失值,得到了112.3935作为整个训练集上的损失,这表明损失计算已经完成,并对所获得的损失值表示确认。
-
(5) 使用优化器更新模型参数降低损失值
1. 对话中讨论的主题是优化器在深度学习中的应用,特别提到了一种常用的优化器:i dw优化器。
2. 在使用优化器时,需要向它传递参数,这些参数通常是由模型的权重和偏置组成,这里称为F点parameters,即W的参数。
3. 传递给优化器的参数可以通过调用对象的parameters方法实现,这样可以方便地将模型的所有可学习参数一次性传递给优化器,而无需手动列出每一个参数。
4. 优化器中还有一个关键参数是学习率,它决定了参数更新的步长大小。在这个对话中,学习率被设定为0.1,意味着每次更新时,参数会按照这个固定的比例进行调整。
1. 对话内容涉及到计算损失函数(total loss)关于参数(W和B)的梯度的过程。
2. 损失函数用于评估模型预测值与实际值之间的差异,其梯度用于指导参数优化。
3. 在计算梯度后,系统执行了“backward pass”但未进行参数优化,仅计算了梯度。
4. 计算梯度的步骤是自动完成的,为下一步的参数更新做好准备,优化步骤尚未执行。
1. 对话内容主要讨论了在机器学习和神经网络训练过程中,如何通过计算损失函数(Loss)关于权重(W)和偏置(B)的梯度来优化参数的过程。
2. 梯度是一个与参数W和B形状相同的东西,它指示了参数在哪个方向上改变时,损失函数L的减少量最大。
3. 计算出的梯度表示了权重和偏置的最佳更新方向,通过这些梯度,可以精确地知道参数应该如何调整以最小化损失函数。
4. 优化器(Optimizer)是一个预先定义的算法,用于根据计算出的梯度更新权重和偏置,其目的是沿着梯度的反方向调整参数,从而逐步减小损失函数的值。
5. 优化过程涉及计算损失函数关于权重和偏置的梯度,然后使用与权重和偏置绑定的优化器来执行梯度下降或上升的步骤,以实现参数的优化。
1. 对话开始时,数值序列从0.0递增至0.4。
2. 数值序列随后发生了变化,第一个数值变为-1乘以10的负4次方,第二个数值变为9.98乘以10的负2次方,第三个数值变为1.997。
3. 在描述变化的过程中,提到了B的值从零变化到了-0.1。
4. 对话中提到,之前调整学习率时,W中的每个值都减小了0.1,同时B也减小了。
1. 对话首先关注的是当前loss值降低至6.8,较之前的120多有了显著优化,这说明模型训练方向正确且效果明显。
2. 讨论提到需要再次运行网络以计算输出的Y值,这个过程与之前的步骤完全一致,仅是重复验证了模型的运作逻辑。
3. 训练优化过程被强调,通过多轮训练,观察到loss值显著下降,显示模型学习能力较强,对数据的适应性提升。
4. 讲述了遍历数据集的策略,即通过循环多次遍历整个数据集来加强模型的学习,总共执行100个epoch,即遍历数据集100次,以此加深模型对数据的理解和掌握。
5. 最后提及了每轮遍历后记录每个batch的loss值,并最终计算出整个数据集的总loss值,之后进行反向传播和优化,这是深度学习训练过程中的关键步骤,确保模型参数调整以最小化loss。
-
(6)详细描述AI训练过程和结果
1. 在深度学习训练过程中,每次backward操作会计算梯度,但这些梯度会被累积在PyTorch的后台,不会直接显示给用户。
2. 累积梯度有助于更稳定地更新模型参数,尤其是在使用动量优化算法时,但需要定期清空累积梯度以避免累积误差的积累。
3. Zero gradient是清空累积梯度的过程,以便计算新的梯度并进行参数更新,保持训练过程的正确性和有效性。
4. 通过累积多个梯度再进行一次优化步骤,可以在一定程度上增强模型的收敛性能,但这要求在累积梯度后不立即更新参数,以利用累积梯度的益处。
5. 训练过程中的结果显示,初始梯度(6.8级)并非全局最优解,随着训练的进行,模型逐渐找到更好的解(如33.59和41.32),这表明最初的解是一个局部最优解,并非最终的最优解。
1 我们可以提供咨询服务,并通过这种方式获得收入,市场上可能缺乏如此清晰详尽且耐心撰写的内容,许多人默认认为受众已经了解很多基础知识,但实际上我们假设受众对所有内容都是一无所知。
2 在我们的服务中,我们致力于将所有相关信息条理清晰地整理出来,不留下任何遗漏,即便是那些通常被认为是常识性的东西,我们也会详细解释,确保每位客户都能获得完整的知识体系。
3 训练模型或进行测试时,我们直接应用了先前在软件工程领域积累的经验,尽管没有将其封装成可供复用的函数,但这并不影响我们对流程的掌握和实践应用。
-
(7) 训练与测试流程分析
1. 对话内容描述了将训练数据转换为测试数据的过程,其中X代表测试集的一个批次,y代表对应的标签批次。
2. 测试集的批次通过模型F进行预测,产生的预测值被添加到列表中,同时真实标签也被添加到另一个列表中。
3. 计算了预测值与真实值之间的损失,这个损失是针对测试集计算的,展示了模型在未知数据上的表现。
4. 测试集上的损失值很小,经过平均化处理后为0.09,即使未做平均处理,损失值也应该接近,显示出模型在测试集上的良好性能。
5. 有趣的是,测试集只包含训练集的约1/9,尽管如此,模型在测试集上的表现与训练集上的表现相当,仅略有差异,可能是因为测试集的规模较小导致的。
1. 对话中讨论了在训练集和测试集上进行模型训练的过程。
2. 训练和测试的损失值分别为1.6多和0.16多,这表明模型在训练集上表现较好,但在测试集上的表现更接近预期。
3. 虽然损失值能提供一定参考,但准确率是评估模型性能更为关键的指标。
4. 通过将预测值与真实值分别放入两个列表,可以计算出模型的准确率,从而更准确地评估模型性能。
5. 讨论强调了预测值是连续的数值,例如1.23这种形式,而不是离散的分类标签,这影响了评估指标的选择和计算方式。
-
(8)评估模型准确率方法
1. 对话内容涉及到将数值进行四舍五入处理,以将其转换为整数分类。
2. 使用round函数实现四舍五入,将非整数预测值转换为整数,便于分类分析。
3. 经过四舍五入处理后,预测值变为整数形式,如102等,而非小数形式。
4. 对比处理前后,发现使用round函数进行四舍五入后,分类准确率达到了百分之百。
5. 通过调整预测值的格式(通过四舍五入至最近的整数),可以提高分类任务的准确性和可理解性。
1. 预测值和真实值需要转换为向量形式,以便进行后续的比较操作。
2. 通过将预测值和真实值列表转换为NumPy数组,然后求和,得到一个布尔向量,该向量中的元素指示每个预测值与实际值是否相等。
3. 布尔向量通过计算其平均值,将布尔值转换为浮点数(其中True为1,False为0),进而得到预测准确率的数值。
4. 这一过程涉及到将逻辑判断(预测与实际是否相同)转换为数值计算,便于量化模型的预测精度。
5. 算法的关键在于将分类预测结果的比较转换为数值处理,以获得模型预测的准确率。
-
(9) 改进分类预测模型的方法
1. 对于不同类别的预测,简单地将预测值设为零,并根据真实值计算损失,会显得对不同类别不公平。比如,预测错误时,真实值为1的损失是1,而真实值为2的损失变成了2,这似乎认为更大的错误应该受到更严重的惩罚,但这样对所有类别来说并不公平。
2. 为了更加公平地处理分类问题,我们不应该直接输出代表类别的具体值,而是输出每个类别的概率,形成一个概率分布。这种方式可以让模型在预测时考虑到每个类别的可能性,从而避免了简单数值比较的不足,更加准确地反映模型对每个类别的判断力度。
1. 对话内容描述了在机器学习模型中,对于多分类问题,如何通过softmax函数确保输出概率之和为1。首先,假设每个样本属于不同类别的概率分别为Y1、Y2、Y3,这些概率是由输入数据X经过线性变换(WX+b)得到的,其中W是一个4x3的权重矩阵,X是一个4维的特征向量,b是偏置向量,确保最终输出是三行一列的向量。
2. 在线性变换后,直接得到的概率输出并不一定满足所有概率加和为1的条件。因此,需要应用softmax函数对这些概率进行调整,确保输出的概率值构成一个概率分布,即Y1、Y2、Y3相加等于1,这样每个类别的概率才符合统计学中的要求。
3. softmax函数的工作原理是将每个原始概率值通过指数函数计算后再做归一化处理,即对于每个类别i,新的概率计算公式为 exp(Yi) / Σ(exp(Yj)),其中j遍历所有类别。这样处理后,即使原始概率值很大或很小,经过softmax后也会得到一个合理的概率分布。
4. 实现这一思路时,银行W(假设为一个4x3的矩阵)确实是一个关键参数,它决定了特征X通过线性变换后,如何影响最终每个类别的概率输出。W的每个元素都对输出概率有直接影响,因此在训练模型时,W会通过反向传播算法来不断调整,以最小化预测概率与实际类别标签之间的差异。
5. 整个过程强调了在多分类问题中,正确地设计和应用softmax函数对于获得准确且具有实际意义的概率预测的重要性。通过这一机制,模型可以有效地为每个类别分配合理的概率,从而提高预测的准确性和可靠性。
1. 对话中讨论了在编程中使用softmax函数的情况,特别提到了输入数据的结构和维度选择的问题。
2. 在softmax函数的应用中,一个具体的例子是将输入数据x初始化为-1,讨论了关于数据归一化的问题,即确保数据在特定维度上的和为1。
3. 提到了在指定维度进行归一化时,可以选择让每一行或每一列的元素和为1,具体通过调整索引(如使用-1或-2)来实现。
4. 解释了在多维数组中选择指定维度进行归一化的重要性,特别是在处理行和列时的区别,以及如何通过索引-1或-2来达到让行或列的元素和为1的目的。
5. 对于多维数组操作的理解和解释,强调了在进行归一化时,选择正确的维度(第一维或第二维,即正数1或负数-1)以确保每一行或每一列的元素和为1,从而实现正确的数据归一化效果。
1. 对话内容涉及到概率的讨论,但未详细说明各类概率的具体含义及其应用背景。
2. 提及了“第一类、第二类、第三类的概率”,表明讨论中包含至少三个不同类型的概率分析或场景,但未进一步阐述这些类别所代表的具体内容。
3. 提到“随机的矩阵”生成,暗示了讨论中用到了随机数矩阵的概念,用来模拟或分析不确定事件。
4. 强调了不需要实际书写整个矩阵,而是通过“touch点random”这一方式,即通过随机函数快速生成矩阵,体现出对效率和灵活性的关注。
5. 在描述矩阵尺寸时出现了一些混淆,如“三行四晕了,三行四列是吧”,随后更正为“三行四列”,说明了生成的是一个3行4列的矩阵,这可能指向了生成随机矩阵过程中对矩阵维度的特定要求或测试。
1 对话开始时讨论了神经网络中输入和输出维度的设定,明确输入为四维(花瓣长度、花瓣宽度、花瓣高度),输出为三维(代表不同类别的概率)。
2 在描述网络架构时,提到了使用“四三”来表示模型,即输入四维,输出三维,清晰地定义了网络的输入输出结构。
3 讨论了如何将输入X传递给线性层(linear),说明了通过直接将X与权重W相乘并加上偏置B来计算输出,这一过程封装在W和B中,生成了不同类别的概率。
4 在解释网络输出时,强调了线性层的输出是三个概率值,这些概率代表了输入数据属于不同类别的可能性。
5 最后,提及了在查看模型参数时,“wait”被指出实际上指的是权重W,强调了模型参数在神经网络架构中的重要性。
-
(10)假设模型输出与真实标签计算交叉熵损失
1. 对话首先建立在一个假设的基础上,即讨论的焦点是预测值与真实值的对比,这为后续的分析提供了前提条件。
2. 在这种假设的框架内,讨论转向了损失函数的讨论,特别提到了交叉熵作为计算损失的一种方法,表明了模型预测与实际结果差异的量化方式。
3. 对话中提到的预测概率值,如0.7,被用来具体化讨论,展示了如何根据预测概率来评估模型的性能。
4. 进一步解释了如何根据预测概率来判断模型的预测是否准确,通过比较不同类别的预测概率,比如预测为“二”的概率期望更高,这体现了分类任务中正例概率的重要性。
5. 最后,对话强调了在分类任务中,对于不同类别的样本,模型期望的预测概率分布是有区别的,这种区别体现在对不同类别预测概率的期望值上,以此来优化模型的分类性能。
1. 对话内容主要围绕着一个被索引的对象进行讨论,其中提到索引的具体数值。
2. 在对话中,提到了几个索引值,包括0.7、0.8和0.2,这些数值是被探讨和展示的。
3. 对话最后提及,所做操作是将这些数值直接提取出来,暗示了处理数据或信息的过程。
4. 通过对话可以推测,此段讨论可能是技术交流的一部分,涉及到数据处理或者索引查找的技术细节。
1. 对话内容主要探讨了损失函数在期望最大化和最小化过程中的应用,重点讨论了交叉熵作为损失函数的一种,及其在评估模型性能时的重要性。
2. 交叉熵被定义为负的对数概率的平均值,体现了模型预测概率与实际标签概率的差距,越小的交叉熵意味着模型预测更加准确。
3. 通过取负对数操作,交叉熵确保了当模型预测概率接近1(即预测正确)时,交叉熵值会显著降低,反之则升高,这有助于优化模型的学习方向。
4. 在讨论中,提到了通过求每个概率的对数再求和(或平均)的方式来计算交叉熵,这一过程直观地反映了模型在预测任务上的表现好坏,越小的交叉熵值意味着模型对数据的分类或回归越准确。
5. 综上所述,交叉熵作为一种损失函数,其值的大小直接关联着模型预测的准确性,是评估和调整模型的关键指标之一。
-
(11)训练与评估一个模型的流程说明
1. 对话内容描述了机器学习模型训练和评估的一个循环过程,首先将输入变量X传递给预测函数F,而输出Y不是一个单一的预测值,而是一个预测分布。
2. 预测分布和实际的标签数据被送入交叉熵损失函数,该函数计算出一个衡量预测与真实值差异的损失值。
3. 计算出的损失与整个模型的其他损失项合并,形成总损失,这一过程之后是反向传播,以调整模型参数,优化预测性能。
4. 经过这一系列步骤,假设是3秒钟内完成了一轮训练,初始损失从较高的数值(如40多)下降到较低的数值(如6.07级),表明模型开始收敛,即学习过程有效。
5. 最后,为了评估模型的性能,会使用测试数据集进行同样的评估过程,确保模型不仅在训练数据上表现良好,而且在未见过的数据上也能有稳定的表现。
1. 对话讨论了如何处理浮点数(FX)作为概率值的过程,通过四舍五入将其转换为整数以匹配标签格式,此步骤为概率分布的创建奠定了基础。
2. 在获得四舍五入后的概率值后,选取概率最大的那个值所对应的位置作为分类标签,例如在01二三个位置中,最大概率的位置决定最终分类。
3. 根据最大概率值的位置,如果第一个位置的概率最高,则预测标签为1,体现了决策依据的确定性。
4. 为了评估模型性能,将预测值与真实值对比并记录于列表中,随后基于这些对比数据计算了损失值(loss),反映了模型预测的准确性或偏差。
5. 计算准确率后得出结果为1.0,意味着在本次测试或评估的样本中,模型的预测完全准确,达到了100%的正确率,体现了良好的分类性能。
相关文章:
AI大模型学习笔记|神经网络与注意力机制(逐行解读)
来源分享链接:通过网盘分享的文件:详解神经网络是如何训练的 链接: https://pan.baidu.com/s/12EF7y0vJfH5x6X-0QEVezg 提取码: k924 内容摘要:本文深入探讨了神经网络与注意力机制的基础,以及神经网络参数训练的过程。以鸢尾花数…...
2025软考中级《数据库系统工程师》案例模拟题合集
1.【说明】某销售企业正在实施电商平台项目,主要功能模块包括用户中心、商品中心、交易中心、支付中心、营销中心等。其中支付中心模块包括了一个账户表:Account (ano, aname, balance),其中属性含义分别为:账户号,账户…...
12.10深度学习_经典神经网络_GoogleNet自我理解
为了更清晰地展示 GoogLeNet 中每个卷积层及其相关参数,我们可以将这些信息整理成表格形式。这不仅有助于理解每一层的输入和输出尺寸,还能直观地看到卷积核的数量、大小、步长以及填充方式等关键参数。以下是 GoogLeNet 前几层(包括两个卷积…...
CTFshow-命令执行(Web58-77)
CTFshow-命令执行(Web58-77) Web58 <?php if(isset($_POST[c])){$c $_POST[c];eval($c); }else{highlight_file(__FILE__); }Warning: system() has been disabled for security reasons in /var/www/html/index.php(17) : eval()d code on line 1 本题对于passthru&…...
android全局拖拽效果实现startDragAndDrop
有多种方式实现全角拖拽,我们基于系统标准的api startDragAndDrop 来做介绍 实现步骤: 一、应用的的拖拽 1.1 通过长按触发 holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {Overridepublic boolean onLongClick(View v) {C…...
MySQL之索引与事务
一、索引 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 索引主要的目的是为了加快查找速度 作用 1、数据库中的表、数据、索引之间的关系&am…...
【OpenCV】基于分水岭算法的图像分割
介绍 分水岭算法(Watershed Algorithm)是一种基于形态学的图像分割方法,它模仿了地理学中的分水岭概念。在图像处理中,分水岭算法通过模拟水流从山顶流向谷底的过程来分割图像,其中局部极小值点被视为“山谷”&#x…...
深度学习:CPU和GPU算力
一、算力 “算力”(Computing Power)通常是指计算机或计算系统执行计算任务的能力。它是衡量系统处理数据、运行算法以及执行计算任务效率的重要指标。根据上下文,算力可以在以下几种场景中具体化: 1. 单机算力 CPU算力&#x…...
android studio 模拟器不能联网?
模拟器路径: C:\Users\Administrator\AppData\Local\Android\Sdk\emulator\emulator.exe.关闭所有AVD设备实例 导航至: C:\Users\userName\AppData\Local\Android\Sdk\emulator查看模拟器名称 AdministratorDESKTOP-6JB1OGC MINGW64 ~/AppData/Local/…...
php.ini 文件上传/执行时间/部分配置新手教程
1、上传文件大小配置 一般需要同时配置“upload_max_filesize”、“post_max_size”,配置格式如下: file_uploads On ;是否允许HTTP文件上传 upload_max_filesize 2M ;设置单个文件上传的最大尺寸 post_max_size 8M ;设置 POST 请求体的最大尺寸&am…...
大模型Qwen面试内容整理-应用场景与案例分析
Qwen模型凭借其强大的自然语言理解和生成能力,在多个实际应用场景中得到了广泛应用。以下是Qwen模型的主要应用场景及一些典型的案例分析,展示了它如何解决具体问题和带来实际价值。 智能对话系统 ● 应用场景 ○ 客服机器人:Qwen被用于开发智能客服机器人,能够理解客户的问…...
网易游戏分享游戏场景中MongoDB运行和分析实践
在游戏行业中,数据库的稳定和性能直接影响了游戏质量和用户满意度。在竞争激烈的游戏市场中,一个优秀的数据库产品无疑能为游戏的开发和后期的运营奠定良好的基础。伴随着MongoDB在不同类型游戏场景中的应用越来越广泛,许多知名的游戏公司都在…...
子查询与嵌套查询
title: 子查询与嵌套查询 date: 2024/12/13 updated: 2024/12/13 author: cmdragon excerpt: 子查询和嵌套查询是关系型数据库中强大的查询工具,允许用户在一个查询的结果中再进行查询。通过使用子查询,用户能够简化复杂的SQL语句,增强查询的灵活性和可读性。本节将探讨子…...
智星云技术文档:GPU测速教程
安装gpu burn git clone https://github.com/wilicc/gpu-burn cd gpu-burn/ make测试 ./gpu_burn 60100.0% procd: 14280 (7373 Gflop/s) - 13390 (6997 Gflop/s) - 15912 (7110 Gflop/s) - 13184 (7055 Gflop/s) - 13464 (7369 Gflop/s) - 13974 (7351 Gflop/s) - 16626 (7…...
(二)多智能体强化学习
目录 前言 一、多智能体强化学习的概念 二、多智能体面临的问题 三、现有算法简介 总结 前言 基于上一篇文章对于强化学习基础概念的介绍,本篇文章针对多智能体强化学习进行介绍和总结,帮助大家了解多智能体的基本概念以及算法,方便大家…...
Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg
Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg 一、全屏截图并保存到StreamingAssets路径下 Texture2D screenShot;//保存截取的纹理public Image image; //显示截屏的Imagepublic void Jietu(){StartCoroutine(ScrrenCapture(new Rect(0, 0, Screen.width…...
linux中给某个文件切换成www用户
要将某个文件的拥有者切换为 www 用户(通常是用于 Web 服务的用户),你可以使用 chown 命令来更改文件的所有者和所属组。以下是相关步骤: ### 1. 确认 www 用户存在 首先确认 www 用户已经存在。可以使用以下命令检查:…...
运维实战:K8s 上的 Doris 高可用集群最佳实践
今天我们将深入探讨::如何在 K8s 集群上部署 Compute storage coupled(存算耦合) 模式的 Doris 高可用集群? 本文,我将为您提供一份全面的实战指南,逐步引导您完成以下关键任务: 配…...
家庭网络防御系统搭建-将EDR系统的sysmon和Windows event log集成到security onion
在前面的文章中安装了sysmon,这里,安装了securityonion,这里,本文讲述如何将sysmon以及Windows生成的event log发送到siem security onion之中,供后续的分析,威胁狩猎之用。 通常日志集成的步骤分为如下几步࿱…...
Ubuntu boot-repair安装过程
本教程只是在UBuntu系统无法引导才使用的方法,有可能需要提前使用U盘刻录UBuntu镜像去引导。 假如winUBuntu双系统,找不到紫色的UBuntu界面了,请参考:windows10ubuntu双系统开机引导界面不见的解决办法_双系统不出现引导界面-CSD…...
图计算之科普:BSP计算模型、Pregel计算模型、
一、BSP计算模型 BSP计算模型,即整体同步并行计算模型(Bulk Synchronous Parallel Computing Model),又名大同步模型或BSP模型,是由哈佛大学L.G. Valiant教授(2010年图灵奖得主)在1992年提出的…...
Kafka Stream实战教程
Kafka Stream实战教程 1. Kafka Streams 基础入门 1.1 什么是 Kafka Streams Kafka Streams 是 Kafka 生态中用于 处理实时流数据 的一款轻量级流处理库。它利用 Kafka 作为数据来源和数据输出,可以让开发者轻松地对实时数据进行处理,比如计数、聚合、…...
数据仓库-基于角色的权限管理(RBAC)
什么是基于角色的用户管理? 基于角色的用户管理(Role-Based Access Control,简称RBAC)是通过为角色赋予权限,用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。 什么是RBAC模型&…...
如何使用ERC404协议
ERC404 ERC404协议的性质 ERC404不是一个开发代码工具包,而是一种智能合约标准规范。它就像是一份蓝图或者规则手册,规定了在以太坊区块链上开发特定智能合约应该遵循的接口、函数和事件等规则。如何使用ERC404协议 定义合约接口 首先,在开发智能合约时,要根据ERC404标准定…...
Spring Boot 工程分层实战(五个分层维度)
1、分层思想 计算机领域有一句话:计算机中任何问题都可通过增加一个虚拟层解决。这句体现了分层思想重要性,分层思想同样适用于Java工程架构。 分层优点是每层只专注本层工作,可以类比设计模式单一职责原则,或者经济学比较优势原…...
IIS部署程序https是访问出现403或ERR_HTTP2_PROTOCOL_ERROR
一、说明 在windows server 2016中的IIS程序池里部署一套系统,通过https访问站点,同时考虑到安全问题以及防攻击等行为,就用上了WAF云盾功能,能有效的抵挡部分攻击,加强网站的安全性和健壮性。 应用系统一直能够正常…...
【深度学习入门】深度学习介绍
1.1 深度学习介绍 学习目标 目标 知道深度学习与机器学习的区别了解神经网络的结构组成知道深度学习效果特点 应用 无 区别 特征提取方面 机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识深度学习通常由多个层组成,它们通常将更简…...
node_modules文件夹删除失败解决办法
在前端开发过程中,node_modules 文件夹是一个必不可少的组成部分,里面存放着项目所需的各种依赖包。然而,随着项目的发展,node_modules 文件夹可能会变得异常庞大,甚至有时需要删除它来解决一些依赖冲突或清理空间。但…...
360智脑张向征:共建可信可控AI生态 应对大模型安全挑战
发布 | 大力财经 人工智能的加速发展,有力推动了社会的数智化转型;与此同时,带来的相关安全风险也日益凸显。近日,在北京市举办的通明湖人工智能开发与应用大会上,360智脑总裁张向征以“大模型安全研究与实践”为主题&…...
adb 常用命令笔记
adb connect <ip> #连接指定ip adb disconnect <ip> #断开连接指定ip adb devices #查看连接中的设备 adb install <flie> #安装apk adb uninstall <packageName> #卸载app adb -s install <flie> #指定设备安装 adb shell pm list package…...
uniapp中打包应用后,组件在微信小程序和其他平台实现不同的样式
今天,我们来介绍一下,uniapp中如何实现打包应用后,组件在微信小程序和其他平台不同的样式,在这里,我们使用背景颜色进行演示,使用 UniApp 提供的 uni.getSystemInfoSync() 方法来获取系统信息,包…...
代码随想录算法训练营第三天 | 链表理论基础 | 206.反转链表
从老链表第一个元素开始,逐个取出 第一个取出的元素,让其next指向nullptr。由于改变其指向,会导致后续链表没有指向消失,所以要在这步之前将其后续元素的指向放在一个新变量中再将后续结点的指向当前结点,不断反复运行…...
《数据结构》(非408代码题)
链表 设单链表的表头指针为L,结点结构由data和next两个域构成,其中data域为字符型。试设计算法判断该链表的全部n个字符是否中心对称。例如xyx、xyyx都是中心对称。 分析: 这题完全可以参考19年那题,我们直接找到中间结点然后将后…...
springboot427民航网上订票系统设计和实现(论文+源码)_kaic
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装民航网上订票系统软件来发挥其高效地信息处理的作用&#x…...
UE4_控件蓝图_制作3D生命血条
一:效果图如下: 二、实现步骤: 1、新建敌人 右键蓝图类 选择角色, 重命名为BP_Enemytest。 双击打开,配置敌人网格体 修改位置及朝向 效果如下: 选择合适的动画蓝图类: 人物就有了动作&#x…...
欧拉计划 Project Euler 21题解
欧拉计划21 Project Euler Problem21题干亲和数约数和的计算定义对于任何素数 \( p \):考虑 p a p^a pa:示例可乘性回到示例 Project Euler Problem21 题干 亲和数 记 d ( n ) d(n) d(n) 为 n 的所有真约数(小于 n 且整除 n 的正整数)之和。 如果 d(a) b , d(b) a &…...
python中的Counter函数
在 Python 中,Counter 是 collections 模块中的一个类,用于统计可迭代对象中元素的出现次数,并以字典的形式返回,键为元素,值为对应的计数。它非常适合处理频率统计问题。 用之前必须先导入 from collections import…...
WPF+MVVM案例实战与特效(三十七)- 实现带有水印和圆角的自定义 TextBox 控件
文章目录 1、概述2、案例实现1、基本功能2、代码实现3、控件应用4、案例效果5、源代码下载4、总结1、概述 在开发用户界面时,TextBox 是最常见的输入控件之一。为了提升用户体验,我们经常需要为 TextBox 添加一些额外的功能,例如显示提示文本(水印)和设置圆角边框。本文将…...
SQLServer到MySQL的数据高效迁移方案分享
SQL Server数据集成到MySQL的技术案例分享 在企业级数据管理中,跨平台的数据集成是一个常见且关键的任务。本次我们将探讨如何通过轻易云数据集成平台,将巨益OMS系统中的退款单明细表从SQL Server高效、安全地迁移到MySQL数据库中。具体方案名称为“7--…...
docker快速实现ELK的安装和使用
目录 一、ELK功能原理 二、项目功能展示 三、日志查询展示 四、ELK安装步骤 1、创建elasticsearch、kibana、filebeat相关data、log、conf目录 2、进入/usr/local/elk目录,并创建一个docker网络 3、启动 elasticsearch容器 4、运行kibana容器 5、启动f…...
hbase读写操作后hdfs内存占用太大的问题
hbase读写操作后hdfs内存占用太大的问题 查看内存信息hbase读写操作 查看内存信息 查看本地磁盘的内存信息 df -h查看hdfs上根目录下各个文件的内存大小 hdfs dfs -du -h /查看hdfs上/hbase目录下各个文件的内存大小 hdfs dfs -du -h /hbase查看hdfs上/hbase/oldWALs目录下…...
解决vue2中更新列表数据,页面dom没有重新渲染的问题
在 Vue 2 中,直接修改数组的某个项可能不会触发视图的更新。这是因为 Vue 不能检测到数组的索引变化或对象属性的直接赋值。为了确保 Vue 能够正确地响应数据变化,你可以使用以下几种方法: 1. 使用 Vue.set() 使用 Vue.set() 方法可以确保 …...
Go语言错误分类
错误的分类 在 Go 语言中,错误是通过实现 error 接口的类型表示的,但不同场景下的错误可以按性质和用途进行分类。以下是 Go 语言错误的常见分类,以及每类错误的解释和示例: 标准错误类型 标准库中定义了许多常见的错误类型&…...
使用 Ansys Fluent 对气体泄漏检测进行建模
了解使用 Ansys Fluent 仿真气体泄漏和确保安全的前沿技术。 挑战 气体泄漏对人类安全和环境构成重大风险。及早检测气体泄漏可以防止潜在的灾难,包括爆炸、火灾和有毒物质暴露。有效的气体泄漏检测系统对于石油和天然气、化学加工和住宅基础设施等行业至关重要。…...
Pytest-Bdd-Playwright 系列教程(16):标准化JSON报告Gherkin格式命令行报告
Pytest-Bdd-Playwright 系列教程(16):标准化JSON报告&Gherkin格式命令行报告 前言一、创建Feature文件二、创建步骤定义文件三、生成Cucumber格式的JSON报告四、使用Gherkin格式的命令行报告五、将BDD报告集成到Jenkins中总结 前言 在自动…...
lc46全排列——回溯
46. 全排列 - 力扣(LeetCode) 法1:暴力枚举 总共n!种全排列,一一列举出来放入list就行,关键是怎么去枚举呢?那就每次随机取一个,然后删去这个,再从剩下的数组中继续去随机选一个&a…...
软考:工作后再考的性价比分析
引言 在当今的就业市场中,软考(软件设计师、系统分析师等资格考试)是否值得在校学生花费时间和精力去准备?本文将从多个角度深入分析软考在不同阶段的性价比,帮助大家做出明智的选择。 一、软考的价值与局限性 1.1 …...
如何设置 Data Guard 的报警机制?
概述 设置 Data Guard 的报警机制是确保高可用性和及时响应故障的关键步骤。以下是一些常见的方法来配置 Data Guard 的报警机制,包括使用 Oracle Enterprise Manager (OEM)、Data Guard Broker 以及自定义脚本和外部监控工具。 1. 使用 Oracle Enterprise Manage…...
Elastic 8.17:Elasticsearch logsdb 索引模式、Elastic Rerank 等
作者:来自 Elastic Brian Bergholm 今天,我们很高兴地宣布 Elastic 8.17 正式发布! 紧随一个月前发布的 Elastic 8.16 之后,我们将 Elastic 8.17 的重点放在快速跟踪关键功能上,这些功能将带来存储节省和搜索性能优势…...
Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF
Latex代码中使用pdf图片,无法预览,提示: Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF 解决办法: 点击左边这个刷新下即可...