code: def main():
      """The main for this domain adaptation example, showing the workflow"""
      args = arg_parse()
  
      # ---- setup configs ----
      cfg = get_cfg_defaults()
      cfg.merge_from_file(args.cfg)
      cfg.freeze()
      print(cfg)
  
      # ---- setup output ----
      format_str = (
          "@%(asctime)s %(name)s [%(levelname)s] - (%(message)s)"
      )
      logging.basicConfig(format=format_str)
      # ---- setup dataset ----
      seed = cfg.SOLVER.SEED
      source, target, num_classes = VideoDataset.get_source_target(
          VideoDataset(cfg.DATASET.SOURCE.upper()),
          VideoDataset(cfg.DATASET.TARGET.upper()),
          seed,
          cfg,
      )
      dataset = VideoMultiDomainDatasets(
          source,
          target,
          image_modality=cfg.DATASET.IMAGE_MODALITY,
          seed=seed,
          config_weight_type=cfg.DATASET.WEIGHT_TYPE,
          config_size_type=cfg.DATASET.SIZE_TYPE,
      )
  
      # ---- setup model and logger ----
      model, train_params = get_model(cfg, dataset, num_classes)
      trainer = pl.Trainer(
          logger=False,
          resume_from_checkpoint=args.ckpt,
          accelerator="gpu" if args.devices != 0 else "cpu",
          devices=args.devices if args.devices != 0 else "auto",
      )
  
      model_test = weights_update(
          model=model, checkpoint=torch.load(args.ckpt)
      )
  
      # test scores
      trainer.test(model=model_test)
  
file_path: pykale/examples/action_dann/test.py
imports: import argparse
  import logging
  import pytorch_lightning
  import torch
  from config import get_cfg_defaults
  from model import get_model
  from kale.loaddata.video_access import VideoDataset
  from kale.loaddata.video_multi_domain import VideoMultiDomainDatasets
label_desc: Use image node_id 3 for calling a global function with example usage: main() without return types