class_docstr: A Fully Connected Network (FCNN) for contextual bandits.
  It outputs a dictionary consisting of {pred_label, pred_sigma, ucb}.
  This model does not yields pred_sigma as LinUCB or DeepRepresentLinearRegressionUCB does.
  It outputs a dummy or zero pred_sigma (uncertainty=ucb_alpha*pred_sigma) by setting pred_sigma=0.
  As a result, this model outputs ucb=pred_label.
code: def forward(
      self, inp: torch.Tensor, ucb_alpha: Optional[float] = 0.0
  ) -> Dict[str, torch.Tensor]:
      if ucb_alpha != 0:
          logger.warn(
              f"CBFullyConnectedNetwork supports only point predictions (ucb_alpha=0), but ucb_alpha={ucb_alpha} was used"
          )
      pred_label = self.net(inp).squeeze(-1)
      pred_sigma = torch.zeros_like(pred_label)
      ucb = pred_label
      return {
          "pred_label": pred_label,
          "pred_sigma": pred_sigma,
          "ucb": ucb,
      }
  
file_path: ReAgent/reagent/models/cb_fully_connected_network.py
imports: import logging
  from typing import Dict, List, Optional
  import torch
  from reagent.models.cb_base_model import UCBBaseModel
  from reagent.models.fully_connected_network import FullyConnectedNetwork
label_desc: Use image node_id 2 for calling the CBFullyConnectedNetwork obj's underlying member method code with example usage: obj.forward(inp, ucb_alpha) and returns: dict