class_docstr: RealNVP BatchNorm layer
class_docstr_tok: ["RealNVP","BatchNorm","layer"]
code: def inverse(self, y, cond_y=None):
      if self.training:
          mean = self.batch_mean
          var = self.batch_var
      else:
          mean = self.running_mean
          var = self.running_var
  
      x_hat = (y - self.beta) * torch.exp(-self.log_gamma)
      x = x_hat * torch.sqrt(var + self.eps) + mean
  
      log_abs_det_jacobian = (
          0.5 * torch.log(var + self.eps) - self.log_gamma
      )
  
      return x, log_abs_det_jacobian.expand_as(x)
  
imports: import copy
  import math
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.distributions import Normal
label_desc: Use image node_id 3 for calling the BatchNorm obj's underlying member method code with example usage: obj.inverse(y, cond_y) and returns: x,  log_abs_det_jacobian