code: def forward(self, x):
      x = x.double()
      if self.binarize is not None:
          x = torch.gt(x, self.binarize).double()
  
      jll = torch.addmm(
          self.jll_calc_bias, x, self.feature_log_prob_minus_neg_prob
      )
      log_prob_x = torch.logsumexp(jll, dim=1)
      log_prob_x = jll - log_prob_x.view(-1, 1)
      prob_x = torch.exp(log_prob_x).float()
  
      if self.perform_class_select:
          return (
              torch.index_select(
                  self.classes, 0, torch.argmax(jll, dim=1)
              ),
              prob_x,
          )
      else:
          return torch.argmax(jll, dim=1), prob_x
  
file_path: hummingbird/hummingbird/ml/operator_converters/_nb_implementations.py
imports: import torch
  from ._physical_operator import PhysicalOperator
label_desc: Use image node_id 2 for calling the BernoulliNBModel obj's underlying member method code with example usage: obj.forward(x) and returns: torch,  prob_x, torch,  prob_x