class_docstr: Base class for creating datasets. Sub-classes must implement __getitem__,
  _training_transforms, and _validation_transforms functions.
  
  Args:
      opts: Command-line arguments
      is_training: Training mode or not. Defaults to True.
      is_evaluation: Evaluation mode or not. Defaults to False.
  
  ...note::
      `is_training` is used to indicate whether the dataset is used for training or
      validation. On the other hand, `is_evaluation` mode is used to indicate the
      dataset is used for testing.
  
      Theoretically, `is_training=False` and `is_evaluation=True` should be the same.
      However, for some datasets (especially segmentation), validation dataset
      transforms are different from test transforms because each image has different
      resolution, making it difficult to construct batches. Therefore, we treat these
      two modes different.
  
      For datasets, where validation and testing transforms are the same, we set
      evaluation transforms the same as the validation transforms.
class_docstr_tok: ["Base","class","for","creating","datasets",".","Sub-classes","must","implement","__getitem__",",","_training_transforms",",","and","_validation_transforms","functions",".","Args",":","opts",":","Command-line","arguments","is_training",":","Training","mode","or","not",".","Defaults","to","True",".","is_evaluation",":","Evaluation","mode","or","not",".","Defaults","to","False",".","...","note",":",":","`","is_training","`","is","used","to","indicate","whether","the","dataset","is","used","for","training","or","validation",".","On","the","other","hand",",","`","is_evaluation","`","mode","is","used","to","indicate","the","dataset","is","used","for","testing",".","Theoretically",",","`","is_training=False","`","and","`","is_evaluation=True","`","should","be","the","same",".","However",",","for","some","datasets","(","especially","segmentation",")",",","validation","dataset","transforms","are","different","from","test","transforms","because","each","image","has","different","resolution",",","making","it","difficult","to","construct","batches",".","Therefore",",","we","treat","these","two","modes","different",".","For","datasets",",","where","validation","and","testing","transforms","are","the","same",",","we","set","evaluation","transforms","the","same","as","the","validation","transforms","."]
docstr: Data transforms for evaluation/testing
code: def _evaluation_transforms(
      self, *args, **kwargs
  ) -> BaseTransformation:
      """Data transforms for evaluation/testing"""
      return self._validation_transforms(*args, **kwargs)
  
imports: from __future__ import annotations
  import argparse
  from abc import ABC
  from typing import Any, Dict, Optional, TypedDict
  import torch
  from PIL import Image
  from torch.utils import data
  from data.transforms import BaseTransformation
  from data.video_reader import get_video_reader
  from utils import logger
label_desc: Use image node_id 6 for calling the BaseDataset obj's underlying member method code with example usage: obj._evaluation_transforms() and returns: self