docstr: Calculates the elementwise determinant of the log Jacobian, i.e.
  log(abs(det(dy/dx))).
docstr_tok: ["Calculates","the","elementwise","determinant","of","the","log","Jacobian",",","i.e",".","log","(","abs","(","det","(","dy\/dx",")",")",")","."]
code: def log_abs_det_jacobian(self, x, y):
      """
      Calculates the elementwise determinant of the log Jacobian, i.e.
      log(abs(det(dy/dx))).
      """
  
      h, w = x.shape[-2:]
      log_det = h * w * self.U_diag.abs().log().sum()
      return log_det * torch.ones(
          x.size()[:-3], dtype=x.dtype, layout=x.layout, device=x.device
      )
  
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 7 for calling the ConditionedGeneralizedChannelPermute obj's underlying member method code with example usage: obj.log_abs_det_jacobian(x, y) and returns: unknown