- 博客(476)
- 收藏
- 关注
原创 DRW的公式推导及代码解析
在第 77 个 epoch 时,模型可能已经充分学习到了数据中的特征,尤其是在使用 BKD 的情况下,模型不仅能够学到头部类别的泛化特征,还能够有效提升尾部类别的表现。:Acne04 数据集的规模较小,类别不平衡的情况可能并没有特别严重,因此即使没有采用更复杂的有效样本计算,类平衡蒸馏就能够取得显著的性能提升。:BKD 蒸馏过程中使用的温度参数 TTT 可能在此时已经使得教师模型的软标签足够平滑,进一步帮助学生模型更好地学习尾部类别的特征,而无需通过有效样本策略来调整每类的权重分布。
2024-09-12 22:52:08 272
原创 BCE损失解析
:, None]的作用是将 1D 张量转换为 2D 张量,以便进行广播,使得我们可以在元素级别上进行逐行相除的操作。它通过增加一个维度来确保张量形状匹配。
2024-09-11 22:55:40 317
原创 交叉熵函数与kl散度的区别
教师模型的输出概率分布用来指导学生模型的训练,但直接使用教师模型的概率分布往往过于“尖锐”(即,教师模型的 softmax 输出大部分概率集中在正确类别)。温度调节可以让模型的预测分布更加平滑,从而在蒸馏过程中更有效地传递知识。下面将解释为什么 KL 散度与温度结合,以及如何使用温度参数。在知识蒸馏中,通过引入较高的温度 TTT,可以让教师模型输出的概率分布变得更加平滑,从而包含更多类的信息,帮助学生模型更好地学习。在知识蒸馏过程中,学生模型通常通过最小化学生模型与教师模型之间的。在深度学习中,尤其是。
2024-09-11 18:22:34 979
原创 _get_gt_mask、cat_mask、_get_other_mask
【代码】_get_gt_mask、cat_mask、_get_other_mask。
2024-09-06 14:31:17 275
原创 为什么说kl散度包含ce损失
KL散度包含交叉熵损失的原因在于它们的公式结构,KL散度的计算中包含了交叉熵损失部分,加上一个固定的熵项。优化KL散度的过程中,也在优化交叉熵损失。
2024-09-05 15:11:07 831
原创 学习率的选择
不同论文中学习率的差异取决于模型架构、数据集大小、优化器选择、训练阶段(预训练或微调)、任务类型(回归或分类)以及使用的学习率调度策略。通常较大的学习率用于初期的快速探索,而较小的学习率用于精细调整模型权重。在深度学习中,合理选择学习率是模型成功训练的关键因素之一。
2024-09-05 10:39:02 380
原创 模型初始化的讲究
在模型参数初始化过程中,通常会用到随机数生成器来设置权重(例如使用 Kaiming 初始化)。这些随机数生成器的状态是动态变化的,因此添加或移除任何一个子模块都会影响随机数生成器的状态,导致后续层的权重初始化产生不同的随机数。: 当模型被实例化时,所有子模块(例如卷积层、全连接层、批量归一化层等)会按其在代码中的出现顺序进行初始化。如果你添加或移除了一些子模块(例如注释掉的分支网络),即使这些子模块在。因此,添加或移除子模块会改变模型中各层的初始化顺序,从而影响整个网络的参数初始化。
2024-07-18 16:24:33 177
原创 CIFAR10-LT DermalMNIST 从dataset到dataloader
【代码】CIFAR10-LT DermalMNIST 从dataset到dataloader。
2024-07-08 14:25:50 167
原创 pytorch 指定GPU设备
这种方法是通过环境变量限制可见的CUDA设备,从而在多个GPU的机器上只让PyTorch看到并使用指定的GPU。这种方式的好处是所有后续的CUDA调用都会使用这个GPU,并且代码中不需要显式地指定设备索引。这种方法是在代码中直接指定要使用的设备索引,无需修改环境变量。这种方式更加显式,并且可以在同一脚本中使用多个不同的GPU。
2024-07-08 11:10:59 425
原创 读取并训练DermalMNIST
由于后续训练和预测用到的标签格式需要是一维数据,而DermaMNIST类读取到的DermaMNIST标签数据是二维数据,所以需要采取措施让标签数据变为一维的。
2024-07-02 17:27:30 268
原创 在 Excel 中的单元格内开始一行新文本
若要在工作表单元格中开始一行新的文本或在文本的行或段之间添加间距,请按 Alt+Enter 插入换行符。按 Alt+Enter 插入换行符。单击所选单元格内想换行的位置。双击要插入换行符的单元格。
2024-07-02 17:22:02 396
原创 对比学习
对比学习通过对比数据对的“相似”或“不同”以获取数据的高阶信息。由同一张原始图片扩增而来的两张新的图片,叫做Positive Pairs。将这两张图片送入深度学习模型中,我们希望深度学习模型学习到这两个图像是相似的。由不同原始图片扩增而得到的新的图像,成为Negtive Pairs。将Negtive Pairs送入深度学习模型中,我们希望深度学习模型学习到这两个图像是不同的。
2024-06-22 19:50:42 224
原创 数据增强 cutout改进imbalance
per_cls_weights = torch.FloatTensor(per_cls_weights).to(torch.device('cpu')) # 假设我们在 CPU 上运行# 计算 n_holes 的数量n_holes = 1 + int(per_cls_weights[label] * 3) # 确保 n_holes 在 1 到 4 之间# 保存每个类别的 n_holes 数量。
2024-06-16 22:10:53 351
原创 Linux 服务器 CUDA两版本
如果报错的命令是RuntimeError,那就使用nvcc -V命令查看是否是版本不匹配。pytorch, cudadnn等要求的cuda版本都是指cuda toolkit的版本。为11.4,nvcc -V命令查看CUDA版本为11.1。以nvcc -V版本为准。nvidia-smi 显示的版本是驱动的版本,是原先在容器里已经装好的。版本小于等于驱动版本都可以正常使用。由于驱动版本是向下兼容的, 因此。而nvcc -V 显示的版本是。的版本,是需要我们去安装的。CUDA有两个CUDA版本。
2024-06-13 16:06:33 371
原创 M2m中的采样
对于少数类的样本来说,即使它们在数据集中的绝对数量不多,也可以通过这种方式增加它们在每个训练批次中出现的次数,从而让模型更频繁地从这些少数类样本学习。这个过程虽然看起来是通过权重调整样本的选取概率,但实际上,通过这种方式也可以达到过采样的效果,尤其是当设置。这样,通过调整这些权重,我们可以控制模型在训练过程中看到的每个类别样本的频率,实现对类别不平衡的处理。不会直接导致过采样,但可以用来确保每个类别在数据批次中都有均等的代表性,从而帮助模型学习到更平衡的特征。在数据加载过程中,每个类别的样本将根据其在。
2024-05-27 16:21:01 240
原创 延迟重平衡优化(Deferred Re-balancing Optimization Schedule)
160epoch之前,每一类的权重是1;160epoch之后,每一类的权重经过带β公式计算的,更偏重与少数类的样本。
2024-05-27 11:41:34 192
原创 结果不能复现的原因 GPU cudnn cudnn.benchmark = True
在定义模型时,如果没有特定的GPU设置,会使用将模型并行化,充分利用多GPU的性能,这在加速训练上有显著影响。
2024-05-27 09:32:56 284
原创 池化
池化(Pooling)是卷积神经网络(CNN)中一个重要的操作,主要用于(feature maps)的维度,提高网络的抽象能力,同时减少计算量和防止过拟合。
2024-05-20 21:53:26 438
泰坦尼克号训练数据集,分析各种因素对泰坦尼克号乘客生存率的影响程度
2022-10-03
泰坦尼克号测试数据集,分析各种因素对泰坦尼克号乘客生存率的影响程度
2022-10-03
数据集——portein.txt
2022-09-27
基于Python的数据可视化实践,文件类型为csv文件,内容为数据集为Salaries
2022-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人