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)
      """
  
      """
          NOTE: As is the case for other conditional transforms, the batch dim of the
          context variable (reflected in the initial dimensions of filters in this
          case), if this is a conditional transform, must broadcast over the batch dim
          of the input variable.
  
          Also, the reason the following line uses matrix multiplication rather than
          F.conv2d is so we can perform multiple convolutions when the filters
          "kernel" has batch dimensions
          """
      filters = (self.permutation @ self.L @ self.U)[..., None, None]
      y = (filters * x.unsqueeze(-4)).sum(-3)
      return y
  
imports: import torch
  from torch.distributions import Transform
  from pyro.nn import DenseNN
  from ..None import constraints
  from ..conditional import ConditionalTransformModule
  from ..torch_transform import TransformModule
  from ..util import copy_docs_from
label_desc: Use image node_id 5 for calling the ConditionedGeneralizedChannelPermute obj's underlying member method code with example usage: obj._call(x) and returns: y