code: def log_prob(self, pi, sigma, mu, y):
      log_component_prob = self.gaussian_probability(
          sigma, mu, y, log=True
      )
      log_mix_prob = torch.log(
          nn.functional.gumbel_softmax(
              pi, tau=self.hparams.softmax_temperature, dim=-1
          )
          + 1e-15
      )
      return torch.logsumexp(log_component_prob + log_mix_prob, dim=-1)
  
imports: import math
  import torch
  from omegaconf import DictConfig
  from torch import nn
  from torch.autograd import Variable
  from torch.distributions import Categorical
  from pytorch_tabular.models.common.heads import config
  from pytorch_tabular.utils import _initialize_layers, _linear_dropout_bn
label_desc: Use image node_id 5 for calling the MixtureDensityHead obj's underlying member method code with example usage: obj.log_prob(pi, sigma, mu, y) and returns: torch