              self._model = model
              self._compile_model()
              self._output_summary()
  
      def _update_dropouts(self, model: keras.models.Model) -> keras.models.Model:
          """ Update the saved model with new dropout rates.
  
          Keras, annoyingly, does not actually change the dropout of the underlying layer, so we need
          to update the rate, then clone the model into a new model and reload weights.
  
 
</s> remove         self.input_shape = self._get_input_shape()
 </s> add         self.input_shape: tuple[int, int, int] = self._get_input_shape() </s> remove     def _get_encoder_model(self) -> keras.models.Model:
 </s> add     def _get_encoder_model(self) -> tf.keras.models.Model: </s> remove         inputs = Input(shape=self._input_shape)
 </s> add         inputs = kl.Input(shape=self._input_shape) </s> remove     def _reshape_for_output(self, inputs: Tensor) -> Tensor:
 </s> add     def _reshape_for_output(self, inputs: tf.Tensor) -> tf.Tensor: </s> remove         return KModel(input_, var_x, name="encoder")
 </s> add         return keras.models.Model(input_, var_x, name="encoder")
    def _update_dropouts(self, model: tf.keras.models.Model) -> tf.keras.models.Model:
              self._model = model
              self._compile_model()
              self._output_summary()
  
    def _update_dropouts(self, model: tf.keras.models.Model) -> tf.keras.models.Model:
          """ Update the saved model with new dropout rates.
  
          Keras, annoyingly, does not actually change the dropout of the underlying layer, so we need
          to update the rate, then clone the model into a new model and reload weights.
  
keep keep keep keep replace keep keep keep keep keep
 Updates:
    - Remove clipfaker
    - Add clip to Phaze-A
    - streamline clip to vision only
    - update lib.model.networks
    - Docs and tests update
    - Phaze-A - add option to flatten bottleneck 
plugins/train/model/phaze_a.py