huawei-noah / Efficient-AI-Backbones

Efficient AI Backbones including GhostNet, TNT and MLP, developed by Huawei Noah's Ark Lab.
4.07k stars 708 forks source link

关于ViG单卡训练 #218

Open Shisi2001 opened 1 year ago

Shisi2001 commented 1 year ago

你好,请问ViG支持单卡训练吗?如果支持在代码上需要进行哪些地方的改动呢?

iamhankai commented 1 year ago

把训练命令里改成--nproc_per_node=1,学习率调低8倍就行了:

python -m torch.distributed.launch --nproc_per_node=1 train.py /path/to/imagenet/ --model pvig_s_224_gelu --sched cosine --epochs 300 --opt adamw -j 8 --warmup-lr 1e-6 --mixup .8 --cutmix 1.0 --model-ema --model-ema-decay 0.99996 --aa rand-m9-mstd0.5-inc1 --color-jitter 0.4 --warmup-epochs 20 --opt-eps 1e-8 --repeated-aug --remode pixel --reprob 0.25 --amp --lr 2.5e-4 --weight-decay .05 --drop 0 --drop-path .1 -b 128 --output /path/to/save/models/
Shisi2001 commented 1 year ago

把训练命令里改成--nproc_per_node=1,学习率调低8倍就行了:

python -m torch.distributed.launch --nproc_per_node=1 train.py /path/to/imagenet/ --model pvig_s_224_gelu --sched cosine --epochs 300 --opt adamw -j 8 --warmup-lr 1e-6 --mixup .8 --cutmix 1.0 --model-ema --model-ema-decay 0.99996 --aa rand-m9-mstd0.5-inc1 --color-jitter 0.4 --warmup-epochs 20 --opt-eps 1e-8 --repeated-aug --remode pixel --reprob 0.25 --amp --lr 2.5e-4 --weight-decay .05 --drop 0 --drop-path .1 -b 128 --output /path/to/save/models/

十分高兴收到您的解答,还有一个问题,我用自己的数据集进行训练,图片格式是.png,我把图片格式转换成.jpge格式,但是出现以下错误,是不是输入图片格式的问题呢? Traceback (most recent call last): File "train.py", line 809, in main() File "train.py", line 603, in main train_metrics = train_epoch( File "train.py", line 662, in train_epoch for batch_idx, (input, target) in enumerate(loader): File "/home/frank/anaconda3/envs/vig/lib/python3.8/site-packages/timm/data/loader.py", line 102, in iter yield input, target UnboundLocalError: local variable 'input' referenced before assignment

iamhankai commented 1 year ago

不是图片格式问题,png和jpeg都支持。看看是不是文件夹不对,文件夹下应该是每一类图片一个子文件夹

Shisi2001 commented 1 year ago

不是图片格式问题,png和jpeg都支持。看看是不是文件夹不对,文件夹下应该是每一类图片一个子文件夹

感谢您的回答,数据集问题已经解决了,如果要处理.json文件,ViG能不能直接处理呢?

iamhankai commented 1 year ago

不能。。

yankwi commented 1 year ago

我想用单卡3090重新训练imagenet需要注意哪些呢?按上面的配置训vig_ti_224网络,100epoch后acc一直30%左右,而且越训精度基本不怎么升了; 而作者您提供的模型可以达到74.5%,差异很大,可能是什么原因呢?

iamhankai commented 1 year ago

单卡3090训练的话,batch size比较小吧,学习率怎么设置的?

yankwi commented 1 year ago

学习率按 2e-3 / 8设置的吧

iamhankai commented 1 year ago

batch size小的话,学习率也要设置小点,多调调

springsha commented 12 months ago

我想用单卡3090重新训练imagenet需要注意哪些呢?按上面的配置训vig_ti_224网络,100epoch后acc一直30%左右,而且越训精度基本不怎么升了; 而作者您提供的模型可以达到74.5%,差异很大,可能是什么原因呢?

你好 请问您训练了多久呀 想知道一下训练大概要多久,请问最后您的正确率上去了吗 @yankwi

yankwi commented 12 months ago

一个epoch一个多小时吧,单卡batchsize上不去,复现不了结果