mmpretrain icon indicating copy to clipboard operation
mmpretrain copied to clipboard

准确率无法提升

Open ychenghan opened this issue 3 years ago • 6 comments

推荐使用英语模板 General question,以便你的问题帮助更多人。

首先确认以下内容

  • 我已经查询了相关的 issue,但没有找到需要的帮助。
  • 我已经阅读了相关文档,但仍不知道如何解决。

描述你遇到的问题

[我想要训练一个修改网络结构后的预训练模型,因此我在原结构上做了测试,我没有改动任何网络结构,我没有加载预训练模型并且在ImageNet上进行训练,但在训练开始之后我发现了问题,随着epoch数的增加网络的准确率并没有提高并且越来越低,同时val集的损失也没有下降,在60个epoch时验证集上的准确率仍然只有4%,我想问这是由什么原因造成的,难道是我的数据集出现了问题吗]

相关信息

  1. pip list | grep "mmcv\|mmcls\|^torch" 命令的输出 [mmcls 0.21.0 /home/amax/YCH/mmclassification mmcv 1.4.7 /home/amax/YCH/mmcv torch 1.9.0 torch-encoding 1.2.1 torchaudio 0.9.0 torchvision 0.10.0]
  2. 如果你修改了,或者使用了新的配置文件,请在这里写明
[_base_ = [
    '../configs/resnet/resnetv1c50_8xb32_in1k.py'
]
data = dict(
    samples_per_gpu=64,
    workers_per_gpu=2)

workflow = [('train', 1),('val', 1)]]
  1. 如果你是在训练过程中遇到的问题,请填写完整的训练日志和报错信息 [ ]
  2. 如果你对 mmcls 文件夹下的代码做了其他相关的修改,请在这里写明 [填写这里]

ychenghan avatar Mar 22 '22 08:03 ychenghan

可以使用工具vis_pipeline检查一下数据集以及pipeline。这种情况一般都是数据集的问题

Ezra-Yu avatar Mar 23 '22 08:03 Ezra-Yu

可以看一下经过处理后的ILSVRC 2012的meta文件夹内容吗,我没有使用datasetprepare中提到的处理ImageNet脚本进行处理

ychenghan avatar Mar 24 '22 05:03 ychenghan

可以看一下经过处理后的ILSVRC 2012的meta文件夹内容吗,我没有使用datasetprepare中提到的处理ImageNet脚本进行处理

训练集上的 loss 有下降吗?

mzr1996 avatar Mar 24 '22 07:03 mzr1996

下降了

ychenghan avatar Mar 24 '22 07:03 ychenghan

下降了

imagenet/
├── meta
│   ├── test.txt
│   ├── train.txt
│   └── val.txt
├── train
│   ├── n01440764
│   │   ├── n01440764_10026.JPEG
│   │   ├── n01440764_10027.JPEG
│   │   ├── n01440764_10029.JPEG
│   │   ├── n01440764_10040.JPEG
│   │   ├── n01440764_10042.JPEG
│   │   ├── n01440764_10043.JPEG
│   │   └── n01440764_10048.JPEG
│   ├── n01443537
│   │   ├── n01443537_10007.JPEG
│   │   ├── n01443537_10014.JPEG
│   │   ├── n01443537_10025.JPEG
│   │   ├── n01443537_10034.JPEG
│   │   ├── n01443537_10035.JPEG
│   │   ├── n01443537_10078.JPEG
│   │   └── n01443537_10083.JPEG
│   ├── n01484850
│   │   ├── n01484850_10016.JPEG
│   │   ├── n01484850_10036.JPEG
│   │   ├── n01484850_10073.JPEG
│   │   ├── n01484850_10085.JPEG
│   │   ├── n01484850_10086.JPEG
│   │   ├── n01484850_10134.JPEG
│   │   └── n01484850_10139.JPEG
│   ...
├── val
    ├── ILSVRC2012_val_00048809.JPEG
    ├── ILSVRC2012_val_00048835.JPEG
    ├── ILSVRC2012_val_00048851.JPEG
    ├── ILSVRC2012_val_00048858.JPEG
    ├── ILSVRC2012_val_00048860.JPEG
    ├── ILSVRC2012_val_00048868.JPEG
    ├── ILSVRC2012_val_00048936.JPEG
    ...

我们支持两种格式的文件,如上所示,train文件夹下是一种,每个子文件夹被视为一类;val 文件夹下是另一种,文件不必按照子文件夹归类,但需要通过 ann_file,也就是 meta 文件夹里的 val.txt 指定类别。 需要检查一下 train 和 val 数据集的类别是否匹配了

mzr1996 avatar Mar 25 '22 04:03 mzr1996

好的 我去检查一下,谢谢

ychenghan avatar Mar 25 '22 05:03 ychenghan

This issue will be closed as it is inactive, feel free to re-open it if necessary.

tonysy avatar Dec 12 '22 15:12 tonysy