Sense-X/UniFormer

代码问题

OvO616 opened this issue · 4 comments

兄弟你好,最近用你的代码在diving48数据集上跑,为什么这个代码到第6个epoch的时候的loss总会变成Nan啊,大佬能不能回答下

这应该是transformer里比较常见的问题,可以使用以下几个方案:

  1. 关闭混合精度训练,最有效的方式;
  2. 降低学习率,增长wrmup epoch;
  3. 使用更弱的数据增强;

可以看一看我新更新的训练小模型的脚本,使用了如上的一些策略~

OvO616 commented

这应该是transformer里比较常见的问题,可以使用以下几个方案:

  1. 关闭混合精度训练,最有效的方式;
  2. 降低学习率,增长wrmup epoch;
  3. 使用更弱的数据增强;

可以看一看我新更新的训练小模型的脚本,使用了如上的一些策略~

好的 谢谢您 目前已经按照您更新的HMDB51上做了相应的更改 目前跑到20epoch没有出现loss为Nan的情况

OvO616 commented

这应该是transformer里比较常见的问题,可以使用以下几个方案:

  1. 关闭混合精度训练,最有效的方式;
  2. 降低学习率,增长wrmup epoch;
  3. 使用更弱的数据增强;

可以看一看我新更新的训练小模型的脚本,使用了如上的一些策略~

您好 我按照您HMDB51的config进行了相应参数的更改,我在diving48上训练了100epoch后 loss一直在2左右不降了 最终准确率是72.4%,这个最终准确率是有效的么?我的参数设置如下,大佬有没有什么好的意见关于参数修改
TRAIN:
ENABLE: True
DATASET: sth
BATCH_SIZE: 16
EVAL_PERIOD: 10
CHECKPOINT_PERIOD: 10
AUTO_RESUME: True
DATA:
NUM_FRAMES: 16
SAMPLING_RATE: 4
RANDOM_FLIP: False
TRAIN_JITTER_SCALES: [256, 320]
TRAIN_CROP_SIZE: 224
TEST_CROP_SIZE: 256
INPUT_CHANNEL_NUM: [3]

PATH_TO_DATA_DIR: path-to-imagenet-dir

TRAIN_JITTER_SCALES_RELATIVE: [0.08, 1.0]
TRAIN_JITTER_ASPECT_RELATIVE: [0.75, 1.3333]
UNIFORMER:
EMBED_DIM: [64, 128, 320, 512]
DEPTH: [3, 4, 8, 3]
HEAD_DIM: 64
MLP_RATIO: 4
DROPOUT_RATE: 0
ATTENTION_DROPOUT_RATE: 0
DROP_DEPTH_RATE: 0.2
SPLIT: False
PRETRAIN_NAME: 'uniformer'
AUG:
NUM_SAMPLE: 2
ENABLE: True
COLOR_JITTER: 0.4
AA_TYPE: rand-m5-n2-mstd0.25
INTERPOLATION: bicubic
RE_PROB: 0.25
RE_MODE: pixel
RE_COUNT: 1
RE_SPLIT: False
MIXUP:
ENABLE: True
ALPHA: 0.8
CUTMIX_ALPHA: 1.0
PROB: 1.0
SWITCH_PROB: 0.5
LABEL_SMOOTH_VALUE: 0.1
BN:
USE_PRECISE_STATS: False
NUM_BATCHES_PRECISE: 200
SOLVER:
ZERO_WD_1D_PARAM: True
BASE_LR_SCALE_NUM_SHARDS: True
BASE_LR: 0.0001
COSINE_AFTER_WARMUP: True
COSINE_END_LR: 1e-6
WARMUP_START_LR: 1e-6
WARMUP_EPOCHS: 30.0
LR_POLICY: cosine
MAX_EPOCH: 200
MOMENTUM: 0.9
WEIGHT_DECAY: 0.05
OPTIMIZING_METHOD: adamw
COSINE_AFTER_WARMUP: True
MODEL:
NUM_CLASSES: 48
ARCH: uniformer
MODEL_NAME: Uniformer
LOSS_FUNC: soft_cross_entropy
DROPOUT_RATE: 0.5
TEST:
ENABLE: True
DATASET: sth
BATCH_SIZE: 32
NUM_SPATIAL_CROPS: 1
DATA_LOADER:
NUM_WORKERS: 8
PIN_MEMORY: True
TENSORBOARD:
ENABLE: True
NUM_GPUS: 1
NUM_SHARDS: 1
RNG_SEED: 0
OUTPUT_DIR: .

可以适当用少一些epoch,优先调整学习率