code: def save(self, save_location, verbose=True):
      # save encoder
      if self.encoder is not None:
          encoder_output = os.path.join(save_location, "encoder")
          self.encoder.save(encoder_output)
          if verbose:
              print(
                  "Keras encoder model saved to {}".format(
                      encoder_output
                  )
              )
  
      # save decoder
      if self.decoder is not None:
          decoder_output = os.path.join(save_location, "decoder")
          self.decoder.save(decoder_output)
          if verbose:
              print(
                  "Keras decoder model saved to {}".format(
                      decoder_output
                  )
              )
  
      # save parametric_model
      if self.parametric_model is not None:
          parametric_model_output = os.path.join(
              save_location, "parametric_model"
          )
          self.parametric_model.save(parametric_model_output)
          if verbose:
              print(
                  "Keras full model saved to {}".format(
                      parametric_model_output
                  )
              )
  
      # # save model.pkl (ignoring unpickleable warnings)
      with catch_warnings():
          filterwarnings("ignore")
          # work around optimizers not pickling anymore (since tf 2.4)
          self._optimizer_dict = self.optimizer.get_config()
          model_output = os.path.join(save_location, "model.pkl")
          with open(model_output, "wb") as output:
              pickle.dump(self, output, pickle.HIGHEST_PROTOCOL)
          if verbose:
              print(
                  "Pickle of ParametricUMAP model saved to {}".format(
                      model_output
                  )
              )
  
imports: import numpy
  from umap import UMAP
  from warnings import warn, catch_warnings, filterwarnings
  from numba import TypingError
  import os
  from umap.spectral import spectral_layout
  from sklearn.utils import check_random_state
  import codecs, pickle
  from sklearn.neighbors import KDTree
  import sys
label_desc: Use image node_id 10 for calling the ParametricUMAP obj's underlying member method code with example usage: obj.save(save_location, verbose) without return types