面经
pythonSuperman
这个作者很懒,什么都没留下…
展开
-
熵的基本概念
在机器学习,尤其是分类任务中,模型常常会输出一个概率分布,表示输入属于各个类别的概率。如果模型对某个类别非常确定,那么输出的概率分布会在某个类别上接近1,其他类别接近0,这种情况下的熵很低。相反,如果模型对所有类别几乎同等不确定,输出的概率分布将接近均匀分布,熵就会很高。在实际应用中,通过在损失函数中添加一个促使概率分布熵增加的项(如前面代码中的负熵损失),可以帮助调节模型的自信度,防止过度自信而忽视其他可能的类别,从而提高模型对新情况的适应性和鲁棒性。原创 2024-04-25 20:24:53 · 320 阅读 · 0 评论 -
理论学习:one-hot编码
在One-hot编码中,对于具有N个不同取值的分类变量,我们创建一个长度为N的二进制向量,其中只有一个元素为1,其余元素都为0。每个不同的取值都对应一个唯一的二进制向量。One-hot编码的主要优点是它能够保留分类变量之间的无序关系,而不引入任何顺序或距离的假设。例如,考虑一个具有三个不同取值("红"、"绿"和"蓝")的颜色变量。One-hot编码是一种常用的数据编码技术,用于将离散的分类变量转换为机器学习模型可以处理的数字表示。这样,原始的分类变量就被转换为了可以输入到机器学习模型中的数字表示。原创 2024-03-21 21:12:03 · 334 阅读 · 0 评论 -
理论学习:GPU 进程 ngpus_per_node是什么,world_size是什么?
中,这些参数是配置训练环境、初始化通信协议和同步不同训练进程的关键元素。通过正确设置这些参数,你可以高效地利用跨多节点的资源来加速大规模的深度学习训练任务。是两个常用的术语,它们用于配置和管理跨多个节点和GPU的训练过程。在分布式训练框架(如PyTorch的。单个节点(机器或服务器)上可用于训练的GPU数量。在分布式训练环境中,通常情况下,每个GPU运行一个进程。原创 2024-03-21 19:31:46 · 239 阅读 · 0 评论 -
理论学习:ground-truth labels在深度学习中是什么意思
此外,在实际应用中,收集和标记高质量的真值标签通常是一项耗时且成本高昂的任务,但它对于训练有效的深度学习模型来说是必不可少的。举个例子,在图像分类任务中,每张图片都会被标记为“猫”、“狗”、“鸟”等标签之一,这些标签就是真值标签。在测试阶段,模型的预测结果会与真值标签进行比较,以评估模型的性能。这些标签是由人类专家提供的,代表了我们希望模型学习预测的准确结果。在训练深度学习模型时,真值标签被用作参照点,以计算模型预测的准确性和调整模型参数,目的是让模型的预测尽可能接近这些真值标签。原创 2024-03-20 14:31:02 · 522 阅读 · 0 评论 -
理论学习:深度学习里什么是置信度
在深度学习中,置信度通常指的是模型对其预测结果的确信程度。这种概念在分类问题中尤其常见,其中模型会为每个类别分配一个概率值,这个值表示模型认为输入数据属于该类别的可能性有多大。置信度是模型输出的一部分,通常通过softmax函数或其他概率函数得到。例如,在一个图像分类任务中,模型可能需要将输入的图像分类为“猫”、“狗”或“鸟”。对于一个特定的输入图像,模型可能会输出如下概率:猫-0.70、狗-0.25、鸟-0.05。在这个例子中,模型对图像是“猫”的分类置信度最高,为70%。值得注意的是,原创 2024-03-20 11:59:33 · 2811 阅读 · 0 评论 -
理论学习:optimizer.zero_grad() loss.backward() optimizer.step()
这个过程在每个训练迭代中重复执行,通过逐步调整模型参数,最终目标是使得损失函数的值最小化,即模型在训练数据上的表现尽可能好。这三个步骤合在一起,构成了使用梯度下降法(或其变种)进行模型训练的基本框架。原创 2024-03-18 20:34:26 · 476 阅读 · 0 评论 -
理论学习:outputs_cls.detach()的什么意思
内容相同但已从计算图中分离的版本。这样做的目的是在计算知识蒸馏损失时使用这些输出作为“静态”的目标值(或教师信号),而不是让这些输出参与梯度的计算。换句话说,我们希望这些输出作为固定的目标来指导另一部分数据(例如,批次数据的前一半)的训练,但不希望在反向传播时调整生成这些输出的模型参数。当需要停止某些变量的梯度计算时,比如在知识蒸馏或使用生成的样本进行训练时,需要将生成的数据看作是固定的输入而不是要优化的参数。中的数据在后续的操作中不会影响到梯度计算和模型参数的更新,从而可以安全地用作损失计算中的。原创 2024-03-18 20:18:11 · 353 阅读 · 0 评论 -
理论学习:KL散度
在这个比喻中,Alice的故事代表了一个概率分布(真实分布),Bob的故事代表了另一个概率分布(猜测分布),而KL散度就是用来量化Bob的故事与Alice的故事之间的差异。在概率分布的语境下,这两本书就像是两个不同的概率分布,而KL散度就是用来衡量它们之间“讲故事方式”的差异。更通俗地说,如果我们将一个概率分布看作描述某个随机变量的“真实”方法,将另一个概率分布视为对这个“真实”分布的一种“猜测”或近似,那么KL散度就告诉我们这种猜测偏离真实情况有多远。分布差异越大,KL散度的值就越大。原创 2024-03-18 20:14:25 · 236 阅读 · 0 评论 -
理论学习:with torch.no_grad()
仅仅意味着在前向传播过程中,PyTorch会继续追踪计算图并为所有的可训练参数以及执行的操作计算梯度。这些梯度信息将会被存储起来,等待可能的后续梯度反向传播使用。在进行模型的前向推理时,不会导致模型参数发生改变,但会导致不必要的资源消耗和性能下降。因此,在进行模型推理或评估时使用。不会直接导致模型参数发生变化,但它会导致不必要的梯度计算和存储,这不仅增加了计算量,也增加了内存使用。:在PyTorch中,模型参数的更新发生在执行。),这些梯度信息不会被用来更新模型参数。,模型参数不会被更新。原创 2024-03-18 19:58:43 · 371 阅读 · 0 评论 -
理论学习:分类损失
它是一个非负值,表示模型的预测结果与真实情况的接近程度;分类损失越小,表示模型的预测结果与真实标签越接近,模型的性能越好。在不同的应用场景和模型结构中,可能会使用不同类型的分类损失函数。),可能是指在训练过程中除了主要的损失函数外,额外添加的用于辅助训练的分类损失。例如,在知识蒸馏(Knowledge Distillation)的场景中,除了常规的交叉熵损失外,可能还会使用软标签(soft labels)产生的损失来指导学生模型学习,这在一定程度上也可以被视为一种分类损失。脚本中提到的分类损失(原创 2024-03-18 15:54:56 · 316 阅读 · 0 评论 -
理论学习:使用early stopping解决神经网络过拟合问题,early stopping是什么?
Early stopping 是一种用来防止神经网络过拟合的正则化技术,其核心思想非常直接:在训练过程中定期检查模型在一个或多个验证集上的性能,并在性能不再显著提升时停止训练。这种方法既简单又有效,因为它利用了一个观察:训练误差通常随着训练过程的进行而持续减少,但验证误差(即模型在未见过的数据上的误差)在一定时期后往往会开始增加,这是过拟合的明显迹象。训练集用于训练模型,验证集用于监控模型的性能并决定何时停止训练,测试集用于评估最终模型的性能。的技术,它使得模型能够在保持泛化能力的同时最大化其性能。原创 2024-03-18 12:46:29 · 407 阅读 · 0 评论 -
ASCII编码表
大小写分别有26个字母。原创 2024-03-17 10:00:57 · 83 阅读 · 0 评论