code: def _transform(self, _input: Any, **kwargs) -> Any:
      if isinstance(_input, np.ndarray):
          return (
              self._transform_numpy(_input)
              if _input.dtype == np.float32
              else _input
          )
      elif isinstance(_input, torch.Tensor):
          return (
              self._transform_torch(_input)
              if _input.dtype == torch.float32
              else _input
          )
      elif isinstance(_input, tf.Tensor) and _input is not None:
          return (
              self._transform_tf(_input)
              if _input.dtype == tf.float32
              else _input
          )
      else:
          raise TypeError(
              f"The given input type is not currently supported. "
              f"Got {type(_input)}, expected one between (np.ndarray, "
              f"torch.Tensor, tf.Tensor)"
          )
  
imports: import copy
  from abc import ABC, abstractmethod
  from typing import List, Any, Dict
  import numpy
  from nebullvm.optional_modules.tensorflow import tensorflow
  from nebullvm.optional_modules.torch import torch
label_desc: Use image node_id 4 for calling the HalfPrecisionTransformation obj's underlying member method code with example usage: obj._transform(_input) and returns: unknown, unknown, unknown