docstr: Save the best model after HPO.
  
  :param checkpoint_file: The location you want to save the best model, should be a json file
docstr_tok: ["Save","the","best","model","after","HPO",".",":","param","checkpoint_file",":","The","location","you","want","to","save","the","best","model",",","should","be","a","json","file"]
code: def save(self, checkpoint_file):
      """
      Save the best model after HPO.
  
      :param checkpoint_file: The location you want to save the best model, should be a json file
      """
      from bigdl.nano.utils.common import invalidInputError
  
      if self.best_model.model is None:
          invalidInputError(
              False,
              "You must call fit or restore first before calling save!",
          )
      self.best_model.save(checkpoint_file)
  
file_path: BigDL/python/chronos/src/bigdl/chronos/autots/model/auto_prophet.py
imports: import pandas
  import warnings
  from bigdl.chronos.model.prophet import ProphetBuilder, ProphetModel
  from bigdl.chronos.autots.utils import recalculate_n_sampling
label_desc: Use image node_id 5 for calling the AutoProphet obj's underlying member method code with example usage: obj.save(checkpoint_file) without return types