class_docstr: Base class for Contextual Bandit Offline Evaluation algorithms. All algorihtms support evaluation of non-stationary
      policies, as required for exploration-exploitation.
class_docstr_tok: ["Base","class","for","Contextual","Bandit","Offline","Evaluation","algorithms",".","All","algorihtms","support","evaluation","of","non-stationary","policies",",","as","required","for","exploration-exploitation","."]
docstr: Update the evaluated model. When exactly to call this is decided by the user and should mimic when
      the model would get updated in a real deployment.
  The model is cloned and set to eval mode.
docstr_tok: ["Update","the","evaluated","model",".","When","exactly","to","call","this","is","decided","by","the","user","and","should","mimic","when","the","model","would","get","updated","in","a","real","deployment",".","The","model","is","cloned","and","set","to","eval","mode","."]
code: def update_eval_model(self, eval_model: torch.nn.Module) -> None:
      """
      Update the evaluated model. When exactly to call this is decided by the user and should mimic when
          the model would get updated in a real deployment.
      The model is cloned and set to eval mode.
      """
      self.eval_model = copy.deepcopy(eval_model).eval()
  
imports: import copy
  import logging
  from abc import ABC, abstractmethod
  from typing import Optional
  import torch
  from pytorch_lightning.loggers import LightningLoggerBase
  from reagent.core.types import CBInput
  from reagent.core.utils import get_rank
  from reagent.evaluation.cb.utils import add_importance_weights
label_desc: Use image node_id 7 for calling the BaseOfflineEval obj's underlying member method code with example usage: obj.update_eval_model(eval_model) without return types