fundamentalvision / Uni-Perceiver

Apache License 2.0
256 stars 21 forks source link

在vqa v2 test-dev上进行测试 #9

Closed tgyy1995 closed 1 year ago

tgyy1995 commented 1 year ago

你好,感谢你们的工作。 在vqa v2 test-dev上进行测试需要下载mscoco_test2015数据集吗, 另外请你帮我看看我使用的在vqa上进行测试的config是正确的吗:

_BASE_: "/mnt/14T-disk/code/Uni-Perceiver2/configs/BERT_L12_H768_experiments/base_model_bert_l12_h768.yaml"

SHARED_TARGETS:

  -
    NAME: 'VQA_Answer'
    SHARED_TARGETS_CFG:
      FILE_PATH: '/mnt/14T-disk/code/Uni-Perceiver2/datasets/VQA_Answers_CLIP_with_endoftext.pkl'
      DISTRIBUTED: True

TASKS:
  -
    NAME: vqa
    DATASETS:
      TRAIN: 'VQADataset'
      #VAL: 'VQADataset'
      TEST: 'VQADataset'
      DATASET_NAME: 'VQA'
      TASK_TYPE: 'vqa'
      TARGET_SET: ['VQA_Answer']
    DATALOADER:
      TRAIN_BATCH_SIZE: 64
      TEST_BATCH_SIZE: 512
      NUM_WORKERS: 2
      FEATS_FOLDER: '/mnt/14T-disk/code/Uni-Perceiver2/datasets/mscoco_dataset/coco_origin'
      ANNO_FOLDER: '/mnt/14T-disk/code/Uni-Perceiver2/datasets/VQA'
      SEQ_PER_SAMPLE:  1
      MAX_FEAT_NUM: 51
      SAMPLING_WEIGHT: 1.0
      TRANSFORM: 'clip_transforms'
      DO_AS_GEN: True
      SINGLE_CLASS: True
    MODEL:
      MAX_SEQ_LEN: 23
      TEMP_NAME: logit_scale_downstream
    LOSSES:
      # not single class 
      # NAMES: ['BCEWithLogits']
      # LOSS_WEIGHT: 0.05
      # for single class
      NAMES: ['CrossEntropy', 'Accuracy']
      LOSS_WEIGHT: 0.1
    INFERENCE:
      VOCAB: 'CLIP'
      NAME: 'VQAEvaler'
      ID_KEY: 'question_id'
      VALUE: 'answer'
      VAL_ANNFILE: '/mnt/14T-disk/code/Uni-Perceiver2/datasets/VQA/val_target.pkl'
      TEST_ANNFILE: ''
      GENERATION_MODE: False

ENGINE:
  NAME: 'UnifiedTrainer'

MODEL:
  META_ARCHITECTURE: 'MultiTaskTransformerEncoder'
  ENCODER: 'UnifiedBertEncoder'

  SHARE_LAYERNORM: True
  BERT:
    NORMALIZE_DECISION: "BERTPre" 
    DROP_PATH_PROB: 0.0
    DROP_PATH_PROB_FIXED: True

  MODEL_EMA: False
  MODEL_EMA_DECAY: 0.9999

  MAEParamsInit: True
  POSEMBEDFIX: True

  IMG_INPUT_SIZE: 224
  PATCH_SIZE: 16

  POSEMBED_SCALE: !!python/object/apply:eval ["160/224"]
  CHECKPOINT_FILETER: False 
  OLD_CHECKPONT: True 

  LAYER_SCALE: True 
  LAYER_SCALE_INIT: 1e-3

DATALOADER:
  USE_WEIGHTED_SAMPLER: True
  UNIFIED_DATASET: True 
  NUM_WORKERS: 16

  PADDING_TO_MAX: False # True for debugging or token moe with distributed moe 

####################################### Optimizer #######################################
SOLVER:
  NAME: 'Adam'
  TORCH_OPTIMIZER: True
  PARAMS_SEPERATE: True
  # PARAMS_GROUP: True
  # EPOCH: 1
  MAX_ITER: 2500
  CHECKPOINT_PERIOD: 500
  EVAL_PERIOD: 500
  BASE_LR: 0.0001
  BIAS_LR_FACTOR: 1.0
  WEIGHT_DECAY: 0.0
  WEIGHT_DECAY_NORM: 0.0
  WEIGHT_DECAY_BIAS: 0.0
  WEIGHT_DECAY_EMBEDDING: 0.0
  MOMENTUM: 0.9
  DAMPENING: 0.0
  NESTEROV: 0.0
  BETAS: [0.9, 0.95]
  EPS: 1e-6
  GRAD_CLIP: 0.1
  GRAD_CLIP_TYPE: 'norm'
  ACCUM_ITER: 0
  AMP_FP16: True
  APEX_FP16: False # dangerous
  #CHECKPOINT_CEPH_SAVE:True
  WRITE_PERIOD: 50
  MIN_LOSS_SCLE: 2048.0
  # BF16: False # True
  # ZEROSTAGE: 2

  LOSS_SCALE_WINDOW: 200

####################################### lr scheduler ####################################### 
LR_SCHEDULER:
  NAME: 'WarmupCosine'
  WARMUP: 500
  MIN_LR: 0.000001
Lechatelia commented 1 year ago

谢谢您对我们的工作感兴趣,希望下面能够帮到您

  1. 如果需要对测试集进行测试 是需要下载mscoco_test2015测试集的,
  2. config看起来没问题,如果报错我会继续查找,您也可以随时邮件联系我 lechatelia@stu.xjtu.edu.cn
  3. UniPerceiver可以直接对VQA进行测试。 不过由于训练阶段缺乏QA的数据集和任务(当时CVPR2021阶段的UniPerceiver是有QA数据参与pretrain的,但是现在提供的checkpoint都是后来重新pretrain的, 没有加入QA数据,另外 我们并没有直接使用现在的UniPerceiver pretrained模型来对VQA进行zeroshot inference,对其zeroshot性能也不太清楚),我们推荐还是进行finetuning 然后再测试,这个我们做过实验,现在提供的checkpoint 在VQA上面finetuning点数是可以和paper中保持一致或者稍好一点。

如果还有其他问题 尽管贴上来!!!