class_docstr: Log images at end of each validatin step
code: def log_images(
      self,
      trainer,
      base_key: str,
      image_dict: Dict[str, Tensor],
      global_step: int,
  ) -> None:
      for key in self.key_set:
          if image_dict.get(key) is not None:
              log_dict = {
                  f"{base_key}/{key}": wandb.Image(
                      image_dict[key], caption=f"{key}"
                  ),
                  "global_step": global_step,
              }
              trainer.logger.experiment.log(log_dict)
  
imports: import hashlib
  from pathlib import Path
  from typing import Dict
  import hydra
  import pytorch_lightning
  import torch
  import torch.distributed
  import wandb
  from datamodules.video_data_api import VideoData, VideoDataset
  from model_lightning import VCTModule
  from omegaconf import DictConfig
  from pytorch_lightning import LightningDataModule, Trainer, seed_everything
  from pytorch_lightning.callbacks import LearningRateMonitor, ModelCheckpoint
  from pytorch_lightning.loggers.wandb import WandbLogger
  from torch import Tensor
  from torchvision.utils import make_grid
  from utils.hydra_tools import OmegaConf
label_desc: Use image node_id 2 for calling the WandbImageCallback obj's underlying member method code with example usage: obj.log_images(trainer, base_key, image_dict, global_step) without return types