code: def construct_image_augmentations(augmentation_dict, normalize=True):
      train_img_transform = []
      for aug in augmentation_dict:
          if aug == "resize_smallest_side":
              img_size = int(augmentation_dict[aug])
              train_img_transform.append(
                  transforms.Resize(
                      img_size,
                      interpolation=transforms.InterpolationMode.BICUBIC,
                      antialias=True,
                  )
              )
  
          elif aug == "center_crop_h_w":
              img_w, img_h = augmentation_dict[aug].split(",")
              img_w = int(img_w)
              img_h = int(img_h)
              train_img_transform.append(
                  transforms.CenterCrop((img_w, img_h))
              )
  
          elif aug == "random_crop_h_w":
              img_w, img_h = augmentation_dict[aug].split(",")
              img_w = int(img_w)
              img_h = int(img_h)
              train_img_transform.append(
                  transforms.RandomCrop((img_w, img_h))
              )
  
          elif aug == "horizontal_flip":
              enabled = augmentation_dict[aug]
              if enabled:
                  train_img_transform.append(
                      transforms.RandomHorizontalFlip(p=0.5)
                  )
          else:
              raise ValueError("Augmentation not supported")
  
      # Always need to convert data to tensor
      train_img_transform.append(transforms.ToTensor())
      if normalize:
          train_img_transform.append(
              transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
          )
      train_img_transform = transforms.Compose(train_img_transform)
      return train_img_transform
  
label_desc: Use image node_id 2 for calling a global function with example usage: construct_image_augmentations(augmentation_dict, normalize) and returns: train_img_transform