class_docstr: A linear regression model for Disjoint LinUCB.
  Note that instead of being trained by a PyTorch optimizer, we explicitly
      update attributes A and b.
  
  Args:
      input_dim: Dimension of input data
      l2_reg_lambda: The weight on L2 regularization
      ucb_alpha: The coefficient on the standard deviation in UCB formula.
      gamma: The discount factor to avoid exploding numbers when doing incremental training
      using gamma as part of simplified D-LinUCB: https://arxiv.org/pdf/1909.09146.pdf
      In this simplified version of D-LinUCB, we calculate A = \sum \gamma^t xx^T
      to discount the old data. See N2441818 for why we do this.
      set gamma=1.0 to use traditional model
code: def input_prototype(self) -> torch.Tensor:
      return torch.randn(1, self.input_dim)
  
file_path: ReAgent/reagent/models/disjoint_linucb_predictor.py
imports: import logging
  from typing import Optional
  import torch
  from pytorch_lightning.utilities.distributed import ReduceOp, sync_ddp_if_available
  from reagent.models.base import ModelBase
label_desc: Use image node_id 2 for calling the DisjointLinearRegressionUCB obj's underlying member method code with example usage: obj.input_prototype() and returns: torch