class_docstr: Scale reduction value transform according to Pohlen et al (2018).
  
  :param epsilon: Lipschitz constant for value function scaling.
class_docstr_tok: ["Scale","reduction","value","transform","according","to","Pohlen","et","al","(","2018",")",".",":","param","epsilon",":","Lipschitz","constant","for","value","function","scaling","."]
docstr: implementation of :class:`~maze.train.trainers.common.value_transform.ValueTransform` interface
          
docstr_tok: ["implementation","of",":","class",":","`","~maze.train.trainers.common.value_transform.ValueTransform","`","interface"]
code: def transform_value_inv(
      self, x: Union[float, np.ndarray, torch.Tensor]
  ) -> Union[float, np.ndarray, torch.Tensor]:
      """implementation of :class:`~maze.train.trainers.common.value_transform.ValueTransform` interface"""
      if isinstance(x, torch.Tensor):
          return torch.sign(x) * (
              (
                  (
                      torch.sqrt(
                          1
                          + 4
                          * self.epsilon
                          * (torch.abs(x) + 1 + self.epsilon)
                      )
                      - 1
                  )
                  / (2 * self.epsilon)
              )
              ** 2
              - 1
          )
      else:
          return np.sign(x) * (
              (
                  (
                      np.sqrt(
                          1
                          + 4
                          * self.epsilon
                          * (np.abs(x) + 1 + self.epsilon)
                      )
                      - 1
                  )
                  / (2 * self.epsilon)
              )
              ** 2
              - 1
          )
  
file_path: maze/maze/train/trainers/common/value_transform.py
imports: from abc import ABC, abstractmethod
  from typing import Union, Tuple
  import numpy
  import torch
  from maze.core.annotations import override
  from maze.utils.bcolors import BColors
label_desc: Use image node_id 3 for calling the ReduceScaleValueTransform obj's underlying member method code with example usage: obj.transform_value_inv(x) and returns: unknown, unknown