class_docstr: Transformation abstract class.
  
  Parameters
  ----------
  p : float or None
      Probability of executing this transform
  data_indices : tuple or None
      Indices where the transforms need to be applied
class_docstr_tok: ["Transformation","abstract","class",".","Parameters","--","--","--","--","--","p",":","float","or","None","Probability","of","executing","this","transform","data_indices",":","tuple","or","None","Indices","where","the","transforms","need","to","be","applied"]
docstr: Applies the transform to a DataContainer
  
  Parameters
  ----------
  data : DataContainer or dict or np.ndarray.
      Data to be augmented. See ``solt.core.DataContainer.from_dict`` for details.
      If np.ndarray, then the data will be wrapped as a data container with format
      ``I``.
  return_torch : bool
      Whether to convert the result into a torch tensors.
      By default, it is `False` for transforms and ``True`` for the streams.
  as_dict : bool
      Whether to pool the results into a dict.
      See ``solt.core.DataContainer.to_dict`` for details
  scale_keypoints : bool
      Whether to scale the keypoints into 0-1 range
  normalize : bool
      Whether to normalize the resulting tensor. If mean or std args are None,
      ImageNet statistics will be used
  mean : None or tuple of float or np.ndarray or torch.FloatTensor
      Mean to subtract for the converted tensor
  std : None or tuple of float or np.ndarray or torch.FloatTensor
      Mean to subtract for the converted tensor
  
  Returns
  -------
  out : DataContainer or dict or list
      Result
code: def __call__(
      self,
      data,
      return_torch=False,
      as_dict=True,
      scale_keypoints=True,
      normalize=True,
      mean=None,
      std=None,
  ):
      """
      Applies the transform to a DataContainer
  
      Parameters
      ----------
      data : DataContainer or dict or np.ndarray.
          Data to be augmented. See ``solt.core.DataContainer.from_dict`` for details.
          If np.ndarray, then the data will be wrapped as a data container with format
          ``I``.
      return_torch : bool
          Whether to convert the result into a torch tensors.
          By default, it is `False` for transforms and ``True`` for the streams.
      as_dict : bool
          Whether to pool the results into a dict.
          See ``solt.core.DataContainer.to_dict`` for details
      scale_keypoints : bool
          Whether to scale the keypoints into 0-1 range
      normalize : bool
          Whether to normalize the resulting tensor. If mean or std args are None,
          ImageNet statistics will be used
      mean : None or tuple of float or np.ndarray or torch.FloatTensor
          Mean to subtract for the converted tensor
      std : None or tuple of float or np.ndarray or torch.FloatTensor
          Mean to subtract for the converted tensor
  
      Returns
      -------
      out : DataContainer or dict or list
          Result
  
      """
  
      data = BaseTransform.wrap_data(data)
  
      self.reset_state()
      if self.use_transform():
          self.sample_transform(data)
          res = self.apply(data)
      else:
          res = data
  
      if return_torch:
          return res.to_torch(
              as_dict=as_dict,
              scale_keypoints=scale_keypoints,
              normalize=normalize,
              mean=mean,
              std=std,
          )
      return res
  
imports: import copy
  import random
  from abc import ABCMeta, abstractmethod
  import cv2
  import numpy
  from solt.utils import Serializable
  from solt.constants import ALLOWED_INTERPOLATIONS, ALLOWED_PADDINGS
  from ._data import DataContainer, Keypoints
  from solt.utils import img_shape_checker, validate_parameter
label_desc: Use image node_id 7 for calling the BaseTransform obj's underlying member method code with example usage: obj.__call__(data, return_torch, as_dict, scale_keypoints, normalize, mean, std) and returns: res, res