class_docstr: Helper class to manage learnable splines. One could imagine this as a standard
  layer in PyTorch...
docstr: :param y: the output of the bijection
  :type y: torch.Tensor
  
  Inverts y => x. Uses a previously cached inverse if available,
  otherwise performs the inversion afresh.
docstr_tok: [":","param","y",":","the","output","of","the","bijection",":","type","y",":","torch.Tensor","Inverts","y","=",">","x",".","Uses","a","previously","cached","inverse","if","available",",","otherwise","performs","the","inversion","afresh","."]
code: def _inverse(self, y):
      """
      :param y: the output of the bijection
      :type y: torch.Tensor
  
      Inverts y => x. Uses a previously cached inverse if available,
      otherwise performs the inversion afresh.
      """
      x, log_detJ = self.spline_op(y, inverse=True)
      self._cache_log_detJ = -log_detJ
      return x
  
imports: from functools import partial
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.distributions import Transform, constraints
  from pyro.nn import DenseNN
  from ..conditional import ConditionalTransformModule
  from ..torch_transform import TransformModule
  from ..util import copy_docs_from
label_desc: Use image node_id 3 for calling the ConditionedSpline obj's underlying member method code with example usage: obj._inverse(y) and returns: x