class_docstr: Based on [BJC19]_, apart from f and f_inv that are swapped.
class_docstr_tok: ["Based","on","[","BJC19","]","_",",","apart","from","f","and","f_inv","that","are","swapped","."]
docstr: Inverse transformation of `iResnet`
  
  Parameters
  ----------
  y
      input tensor
  Returns
  -------
  Tensor
      transformed tensor `        ext{iResnet}^{-1}(y)`
docstr_tok: ["Inverse","transformation","of","`","iResnet","`","Parameters","--","--","--","--","--","y","input","tensor","Returns","--","--","--","-","Tensor","transformed","tensor","`","ext","{","iResnet","}","^","{","-1","}","(","y",")","`"]
code: def f_inv(self, y: Tensor) -> Tensor:
      """
      Inverse transformation of `iResnet`
  
      Parameters
      ----------
      y
          input tensor
      Returns
      -------
      Tensor
          transformed tensor `\text{iResnet}^{-1}(y)`
      """
      if y is self._cached_y:
          return self._cached_x
      x = y + self._block(y)
      if self._use_caching:
          self._cached_x = x
          self._cached_y = y
      return x
  
file_path: gluonts/src/gluonts/mx/distribution/iresnet.py
imports: import mxnet
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
  from gluonts.mx.util import _broadcast_param
  from gluonts.mx.block.snmlp import SNMLPBlock
  from gluonts.mx.distribution.distribution import getF
  from gluonts.mx.distribution.bijection import BijectionHybridBlock, ComposedBijectionHybridBlock
label_desc: Use image node_id 5 for calling the InvertibleResnetHybridBlock obj's underlying member method code with example usage: obj.f_inv(y) and returns: x, self