class_docstr: Reminder:
      self.args: deq_coeff
                 deq_type
code: def log_prob(self, z, logdet, deq_logp=None, deq_logdet=None):
      logdet[0] = (
          logdet[0] - self.latent_node_length
      )  # calculate probability of a region from probability density, minus constant has no effect on optimization
      logdet[1] = (
          logdet[1] - self.latent_edge_length
      )  # calculate probability of a region from probability density, minus constant has no effect on optimization
  
      ll_node = (
          -1
          / 2
          * (
              torch.log(2 * self.constant_pi)
              + self.prior_ln_var
              + torch.exp(-self.prior_ln_var) * (z[0] ** 2)
          )
      )
      ll_node = ll_node.sum(-1)  # (B)
  
      ll_edge = (
          -1
          / 2
          * (
              torch.log(2 * self.constant_pi)
              + self.prior_ln_var
              + torch.exp(-self.prior_ln_var) * (z[1] ** 2)
          )
      )
      ll_edge = ll_edge.sum(-1)  # (B)
  
      ll_node += logdet[0]  # ([B])
      ll_edge += logdet[1]  # ([B])
  
      return -(
          torch.mean(ll_node + ll_edge)
          / (self.latent_edge_length + self.latent_node_length)
      )
  
file_path: DIG/dig/ggraph/method/GraphAF/model/graphflow_rl.py
imports: import os
  import numpy
  import torch
  import torch.nn
  from rdkit import Chem
  from dig.ggraph.utils import check_chemical_validity, check_valency, calculate_min_plogp, qed
  from dig.ggraph.utils import convert_radical_electrons_to_hydrogens, steric_strain_filter, zinc_molecule_filter
  from .graphaf import MaskedGraphAF
label_desc: Use image node_id 5 for calling the GraphFlowModel_rl obj's underlying member method code with example usage: obj.log_prob(z, logdet, deq_logp, deq_logdet) and returns: unknown