          self._model = k_load_model(self._model_path, compile=False, **self._model_kwargs)
          if self._backend != "amd":
              self._model.make_predict_function()
  
      def define_model(self, function):
          """ Defines a model from the given function.
  
          This method acts as a wrapper for :class:`keras.models.Model()`.
  
          Parameters
 
</s> remove         logger.verbose("Initializing plugin model: %s", self._name)
 </s> add         logger.verbose("Initializing plugin model: %s", self._name)  # type:ignore </s> remove     def append_softmax_activation(self, layer_index=-1):
 </s> add     def append_softmax_activation(self, layer_index: int = -1) -> None: </s> remove         self._model = None
        logger.trace("Initialized: %s", self.__class__.__name__,)
 </s> add         self._model: Optional[Model] = None
        logger.trace("Initialized: %s", self.__class__.__name__,)  # type:ignore </s> remove     def load_model_weights(self):
 </s> add     def load_model_weights(self) -> None: </s> remove     def predict(self, feed, batch_size=None):
 </s> add     def predict(self,
                feed: Union[List[np.ndarray], np.ndarray],
                batch_size: Optional[int] = None) -> Union[List[np.ndarray], np.ndarray]:
    def define_model(self, function: Callable) -> None:
          self._model = k_load_model(self._model_path, compile=False, **self._model_kwargs)
          if self._backend != "amd":
              self._model.make_predict_function()
  
    def define_model(self, function: Callable) -> None:
          """ Defines a model from the given function.
  
          This method acts as a wrapper for :class:`keras.models.Model()`.
  
          Parameters
keep keep keep keep replace keep keep keep keep keep
 Update TF to 2.9
    - Update TF to 2.7 to 2.9
    - Bump dependencies
    - Remove decode from pynvml calls
    - force keras predict functions to non-verbose
    - update tests
    - update Tensorboard logging
    - Update docs 
lib/model/session.py