docstr: :param x: the input into the bijection
  :type x: torch.Tensor
  Invokes the bijection x => y; in the prototypical context of a
  :class:`~pyro.distributions.TransformedDistribution` `x` is a sample from
  the base distribution (or the output of a previous transform)
docstr_tok: [":","param","x",":","the","input","into","the","bijection",":","type","x",":","torch.Tensor","Invokes","the","bijection","x","=",">","y",";","in","the","prototypical","context","of","a",":","class",":","`","~pyro.distributions.TransformedDistribution","`","`","x","`","is","a","sample","from","the","base","distribution","(","or","the","output","of","a","previous","transform",")"]
code: def _call(self, x):
      """
      :param x: the input into the bijection
      :type x: torch.Tensor
      Invokes the bijection x => y; in the prototypical context of a
      :class:`~pyro.distributions.TransformedDistribution` `x` is a sample from
      the base distribution (or the output of a previous transform)
      """
      bias, u, w = (
          self._params() if callable(self._params) else self._params
      )
  
      # x ~ (batch_size, dim_size, 1)
      # w ~ (batch_size, 1, dim_size)
      # bias ~ (batch_size, 1)
      act = torch.tanh(
          torch.matmul(w.unsqueeze(-2), x.unsqueeze(-1)).squeeze(-1)
          + bias
      )
      u_hat = self.u_hat(u, w)
      y = x + u_hat * act
  
      psi_z = (1.0 - act.pow(2)) * w
      self._cached_logDetJ = torch.log(
          torch.abs(
              1
              + torch.matmul(psi_z.unsqueeze(-2), u_hat.unsqueeze(-1))
              .squeeze(-1)
              .squeeze(-1)
          )
      )
  
      return y
  
imports: import math
  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 ConditionedPlanar obj's underlying member method code with example usage: obj._call(x) and returns: y