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(
      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(torch.abs(x) + 1) - 1 + self.epsilon * x
          )
      else:
          return np.sign(x) * (
              np.sqrt(np.abs(x) + 1) - 1 + self.epsilon * x
          )
  
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 2 for calling the ReduceScaleValueTransform obj's underlying member method code with example usage: obj.transform_value(x) and returns: unknown, unknown