facebookresearch / mmf

A modular framework for vision & language multimodal research from Facebook AI Research (FAIR)
https://mmf.sh/
Other
5.49k stars 935 forks source link

Train UniT with dataset other than 8 datasets specified in tutorial #1194

Open HireTheHero opened 2 years ago

HireTheHero commented 2 years ago

❓ Questions and Help

Question

model_config: unit: base_args: num_queries: detection: detection_coco: 100 detection_visual_genome: 100 hateful_memes: 100 vl: vqa2: 25 hateful_memes: 25

visual_entailment: 25

    glue:
      glue_qnli: 25
      glue_qqp: 25
      glue_sst2: 25
      glue_mnli_mismatched: 25
      hateful_memes: 25
  share_decoders: true
  decoder_hidden_dim: 768
  dilation: true
  use_task_embedding_in_img_encoder: true
  use_task_embedding_in_lang_encoder: true
losses:
- logit_bce
# initialize the ResNet convnet backbone from DETR
base_ckpt_path: https://dl.fbaipublicfiles.com/detr/detr-r50-dc5-f0fb7ef5.pth
base_ckpt_load_backbone_only: true

evaluation: metrics:

(rest is same as original yaml file)

#### C: Full Traceback

Traceback (most recent call last): File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 59, in _wrap fn(i, *args) File "/home///mmf_cli/run.py", line 66, in distributed_main main(configuration, init_distributed=True, predict=predict) File "/home///mmf_cli/run.py", line 52, in main trainer.load() File "/home///mmf/trainers/mmf_trainer.py", line 42, in load super().load() File "/home///mmf/trainers/base_trainer.py", line 33, in load self.load_model() File "/home///mmf/trainers/mmf_trainer.py", line 102, in load_model self.model = build_model(attributes) File "/home///mmf/utils/build.py", line 145, in build_model model.build() File "/home///mmf/models/unit/unit.py", line 91, in build num_cls = self.config.heads["detection"][dataset_name]["num_classes"] File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 370, in getitem key=key, value=None, cause=e, type_override=ConfigKeyError File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/base.py", line 196, in _format_and_raise type_override=type_override, File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/_utils.py", line 741, in format_and_raise _raise(ex, cause) File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/_utils.py", line 719, in _raise raise ex.with_traceback(sys.exc_info()[2]) # set end OC_CAUSE=1 for full backtrace File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 367, in getitem return self._get_impl(key=key, default_value=_DEFAULTMARKER) File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 438, in _get_impl node = self._get_node(key=key, throw_on_missing_key=True) File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 465, in _get_node self._validate_get(key) File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 167, in _validate_get key=key, value=value, cause=ConfigAttributeError(msg) File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/base.py", line 196, in _format_and_raise type_override=type_override, File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/_utils.py", line 821, in format_and_raise _raise(ex, cause) File "/home//anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/_utils.py", line 719, in _raise raise ex.with_traceback(sys.exc_info()[2]) # set end OC_CAUSE=1 for full backtrace omegaconf.errors.ConfigKeyError: Key 'hateful_memes' is not in struct full_key: model_config.unit.heads.detection.hateful_memes object_type=dict

ronghanghu commented 2 years ago

Hi, since Hateful Memes is not used for detection tasks, it should not be added to model_config.unit.base_args.num_queries.detection in "B: Config file".

Instead, it should be added only under model_config.unit.base_args.num_queries.vl, as follows:

...
model_config:
  unit:
    base_args:
      num_queries:
        detection:
          detection_coco: 100
          detection_visual_genome: 100
          hateful_memes: 100
        vl:
          ...
HireTheHero commented 2 years ago

@ronghanghu Thanks for your comment. Now the error turned to this

Traceback (most recent call last):
  File "/home/<username>/anaconda3/envs/mmf/bin/mmf_run", line 33, in <module>
    sys.exit(load_entry_point('mmf', 'console_scripts', 'mmf_run')())
  File "/home/<username>/<path_to_mmf>/mmf_cli/run.py", line 133, in run
    main(configuration, predict=predict)
  File "/home/<username>/<path_to_mmf>/mmf_cli/run.py", line 52, in main
    trainer.load()
  File "/home/<username>/<path_to_mmf>/mmf/trainers/mmf_trainer.py", line 42, in load
    super().load()
  File "/home/<username>/<path_to_mmf>/mmf/trainers/base_trainer.py", line 33, in load
    self.load_model()
  File "/home/<username>/<path_to_mmf>/mmf/trainers/mmf_trainer.py", line 102, in load_model
    self.model = build_model(attributes)
  File "/home/<username>/<path_to_mmf>/mmf/utils/build.py", line 145, in build_model
    model.build()
  File "/home/<username>/<path_to_mmf>/mmf/models/unit/unit.py", line 109, in build
    self.config.heads["vl"][dataset_name]["num_labels"],
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 370, in __getitem__
    key=key, value=None, cause=e, type_override=ConfigKeyError
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/base.py", line 196, in _format_and_raise
    type_override=type_override,
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/_utils.py", line 741, in format_and_raise
    _raise(ex, cause)
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/_utils.py", line 719, in _raise
    raise ex.with_traceback(sys.exc_info()[2])  # set end OC_CAUSE=1 for full backtrace
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 367, in __getitem__
    return self._get_impl(key=key, default_value=_DEFAULT_MARKER_)
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 438, in _get_impl
    node = self._get_node(key=key, throw_on_missing_key=True)
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 465, in _get_node
    self._validate_get(key)
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 167, in _validate_get
    key=key, value=value, cause=ConfigAttributeError(msg)
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/base.py", line 196, in _format_and_raise
    type_override=type_override,
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/_utils.py", line 821, in format_and_raise
    _raise(ex, cause)
  File "/home/<username>/anaconda3/envs/mmf/lib/python3.7/site-packages/omegaconf/_utils.py", line 719, in _raise
    raise ex.with_traceback(sys.exc_info()[2])  # set end OC_CAUSE=1 for full backtrace
omegaconf.errors.ConfigKeyError: Key 'hateful_memes' is not in struct
    full_key: model_config.unit.heads.vl.hateful_memes
    object_type=dict