登录/注册
KESIS Transformer 模型在小样本目标检测中不收敛及显存溢出(OOM)的问题

Transformer 模型在小样本目标检测中不收敛及显存溢出(OOM)的问题

25 浏览
0

在做关于“基于改进 Vision Transformer (ViT) 的遥感图像小目标检测”的论文。目前在训练过程中遇到了两个非常打击自信的问题,卡了快半个月了,想请教大家:模型不收敛:我参考了最新的某篇 CVPR 论文,将 Backbone 换成了 Swin Transformer,但在训练前 50 个 Epoch 中,Loss 曲线一直呈现剧烈的锯齿状波动,完全没有下降趋势。我尝试了将学习率(LR)从 1e-4 调到 1e-6,并使用了 CosineAnnealing 策略,但依旧无效。

显存溢出(OOM):为了捕获长程依赖,我设置的 Patch Size 比较小,但在使用单张 RTX 4090 (24GB) 训练时,Batch Size 只能开到 2。如果 Batch Size 太小,BN(Batch Norm)层的统计量极其不稳定。

评价指标异常:在验证集上,[email protected] 只有 0.15 左右,而文献里说能达到 0.42。我已经检查过数据增强(Augmentation)代码,基本排除了 Label 读取错误的可能性。

环境说明:PyTorch 2.1, CUDA 12.1, 单卡 4090。

许宸宇 已回答的问题
0

Transformer 类模型对预训练权重(Pre-trained Weights)极其依赖。 建议:

你是不是从随机初始化开始练的?如果是,小样本数据集根本带不动 Transformer。建议先载入 ImageNet-21K 的预训练参数再 Fine-tune。

另外,Transformer 结构通常用 LayerNorm (LN) 而不是 BN。如果你自己强行加了 BN 且 Batch Size 只有 2,那肯定崩。建议换成 GroupNorm 试试。

沈卓然 已回答的问题
您正在查看2个答案中的1个,单击此处查看所有答案。