- 博客(464)
- 收藏
- 关注
原创 模型初始化的讲究
在模型参数初始化过程中,通常会用到随机数生成器来设置权重(例如使用 Kaiming 初始化)。这些随机数生成器的状态是动态变化的,因此添加或移除任何一个子模块都会影响随机数生成器的状态,导致后续层的权重初始化产生不同的随机数。: 当模型被实例化时,所有子模块(例如卷积层、全连接层、批量归一化层等)会按其在代码中的出现顺序进行初始化。如果你添加或移除了一些子模块(例如注释掉的分支网络),即使这些子模块在。因此,添加或移除子模块会改变模型中各层的初始化顺序,从而影响整个网络的参数初始化。
2024-07-18 16:24:33 169
原创 CIFAR10-LT DermalMNIST 从dataset到dataloader
【代码】CIFAR10-LT DermalMNIST 从dataset到dataloader。
2024-07-08 14:25:50 151
原创 pytorch 指定GPU设备
这种方法是通过环境变量限制可见的CUDA设备,从而在多个GPU的机器上只让PyTorch看到并使用指定的GPU。这种方式的好处是所有后续的CUDA调用都会使用这个GPU,并且代码中不需要显式地指定设备索引。这种方法是在代码中直接指定要使用的设备索引,无需修改环境变量。这种方式更加显式,并且可以在同一脚本中使用多个不同的GPU。
2024-07-08 11:10:59 388
原创 读取并训练DermalMNIST
由于后续训练和预测用到的标签格式需要是一维数据,而DermaMNIST类读取到的DermaMNIST标签数据是二维数据,所以需要采取措施让标签数据变为一维的。
2024-07-02 17:27:30 261
原创 在 Excel 中的单元格内开始一行新文本
若要在工作表单元格中开始一行新的文本或在文本的行或段之间添加间距,请按 Alt+Enter 插入换行符。按 Alt+Enter 插入换行符。单击所选单元格内想换行的位置。双击要插入换行符的单元格。
2024-07-02 17:22:02 386
原创 对比学习
对比学习通过对比数据对的“相似”或“不同”以获取数据的高阶信息。由同一张原始图片扩增而来的两张新的图片,叫做Positive Pairs。将这两张图片送入深度学习模型中,我们希望深度学习模型学习到这两个图像是相似的。由不同原始图片扩增而得到的新的图像,成为Negtive Pairs。将Negtive Pairs送入深度学习模型中,我们希望深度学习模型学习到这两个图像是不同的。
2024-06-22 19:50:42 202
原创 数据增强 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 335
原创 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 335
原创 M2m中的采样
对于少数类的样本来说,即使它们在数据集中的绝对数量不多,也可以通过这种方式增加它们在每个训练批次中出现的次数,从而让模型更频繁地从这些少数类样本学习。这个过程虽然看起来是通过权重调整样本的选取概率,但实际上,通过这种方式也可以达到过采样的效果,尤其是当设置。这样,通过调整这些权重,我们可以控制模型在训练过程中看到的每个类别样本的频率,实现对类别不平衡的处理。不会直接导致过采样,但可以用来确保每个类别在数据批次中都有均等的代表性,从而帮助模型学习到更平衡的特征。在数据加载过程中,每个类别的样本将根据其在。
2024-05-27 16:21:01 234
原创 延迟重平衡优化(Deferred Re-balancing Optimization Schedule)
160epoch之前,每一类的权重是1;160epoch之后,每一类的权重经过带β公式计算的,更偏重与少数类的样本。
2024-05-27 11:41:34 187
原创 结果不能复现的原因 GPU cudnn cudnn.benchmark = True
在定义模型时,如果没有特定的GPU设置,会使用将模型并行化,充分利用多GPU的性能,这在加速训练上有显著影响。
2024-05-27 09:32:56 275
原创 池化
池化(Pooling)是卷积神经网络(CNN)中一个重要的操作,主要用于(feature maps)的维度,提高网络的抽象能力,同时减少计算量和防止过拟合。
2024-05-20 21:53:26 406
原创 通过随机采样和数据增强来解决数据不平衡的问题
当每个类别的样本不平衡时,即在类别分布之间没有平衡比率时,会出现类别不平衡的问题。这种失衡可能是轻微的,也可能是严重的。取决于样本量,从1:2到1:10可以理解为轻微的不平衡,比率大于1:10可以理解为强烈的不平衡。在这两种情况下,都必须使用特殊技术(例如欠采样,过采样,cost-sensitive代价敏感等)处理具有类不平衡问题的数据。稍后,我们将用imblearn [1]介绍欠采样和过采样以及它们的实现。
2024-05-14 16:02:54 585
原创 Influence-Balanced Loss 中的Resample策略
例如,如果你有一个包含 100 个样本的数据集,并使用普通的采样器进行随机抽样,则每个样本被选中的概率都是 1%。这种采样方式简单且常用,但在处理类别极度不平衡的数据集时可能不够有效,因为它可能导致模型对多数类过拟合,而忽视了少数类。在这种情况下,假设数据集中有 𝑁个样本,那么每个样本被选中的概率和权重都是 1/𝑁。这种方式不考虑数据集中可能存在的类别不平衡问题,每个样本被选取的机会完全相同。这意味着在抽样过程中,每个样本被选中的概率是相等的。继承了sampler类,然后重新为数据集中的各样本分配权重。
2024-05-14 11:25:02 405
原创 IB 公式解析
逆频率权重:通过取样本数量的倒数,使得样本数量少的类别得到更高的权重。归一化:将权重标准化,并确保权重的总和与类别数量一致,保持权重比例的合理性。转换为张量:将权重转换为 PyTorch 张量,以便在训练过程中使用。这种权重计算方法确保了在处理类别不平衡问题时,少数类样本对损失函数的贡献增加,从而提高模型对少数类的识别能力。
2024-05-12 22:41:17 854 1
原创 RuntimeError: Attempting to deserialize object on CUDA device 1 but torch.cuda.device_count() is 1.
显卡设备不匹配,原为'cuda:1',现为'cuda:0'。
2024-05-12 19:24:25 185
原创 Focal Loss损失函数
损失损失函数Focal Loss的引入主要是为了解决one-stage目标检测中正负样本数量极不平衡问题。那么什么是正负样本不平衡(Class Imbalance)呢?在一张图像中能够匹配到目标的候选框(正样本)个数一般只有十几个或几十个,而没有匹配到的候选框(负样本)则有10000~100000个。这么多的负样本不仅对训练网络起不到什么作用,反而会淹没掉少量但有助于训练的样本。上面说了是为了解决一阶段目标检测模型,那为什么二阶段不用解决呢?
2024-05-08 20:12:28 822
原创 F.softmax(cls) + 1e-4
为了减轻这种过拟合的可能性,可以在 softmax 操作中添加一个微小的常数(通常为 1e-4 或类似的小值),即在原始的分类得分中加上一个小的偏置。这样做的目的是使得模型对于分类得分的细微差异更加敏感,从而在一定程度上抑制过拟合的发生。在实践中,当某些分类得分特别大时,softmax 函数会将对应的概率接近于 1,而其他分类的概率会接近于 0。因此,这种平滑化操作有助于提高模型的鲁棒性,使得模型更加能够泛化到未见过的数据,并减少在训练集上过度拟合的可能性。
2024-05-07 13:27:05 217
原创 torch.flatten(x, 1)”和“x.view(x.size(0), -1)”有什么区别?
这两个操作在 PyTorch 中都用于将张量展平为一维。总的来说,两者实现的功能相似,但根据个人偏好和代码上下文的不同,选择合适的方法。
2024-05-06 18:27:48 326
原创 为什么IB损失要在100epochs后再用?
这样设计的原因可能是为了先让模型在前100轮中通过使用交叉熵损失函数进行训练,学习到一个相对合理的初始特征表示。然后,在第100轮之后,通过引入。因此,根据给定的训练命令,模型在前100轮中使用交叉熵损失函数进行训练,然后从第100轮开始使用。的值大于等于100,那么在训练的前100轮中将使用普通的交叉熵损失函数((Instance-Balanced)损失函数进行训练。损失函数来进一步提升模型在类别不平衡数据集上的性能。)进行训练,而在第100轮及以后的轮次中将使用。在给定的代码中,参数。
2024-05-06 17:45:29 245
泰坦尼克号训练数据集,分析各种因素对泰坦尼克号乘客生存率的影响程度
2022-10-03
泰坦尼克号测试数据集,分析各种因素对泰坦尼克号乘客生存率的影响程度
2022-10-03
数据集——portein.txt
2022-09-27
基于Python的数据可视化实践,文件类型为csv文件,内容为数据集为Salaries
2022-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人