docstr: Saves the Estimator state to the provided model_path.
  
  :param model_path: (str) Path to save the model.
docstr_tok: ["Saves","the","Estimator","state","to","the","provided","model_path",".",":","param","model_path",":","(","str",")","Path","to","save","the","model","."]
code: def save(self, model_path):
      """Saves the Estimator state to the provided model_path.
  
      :param model_path: (str) Path to save the model.
      """
      state_dict = self.get_state_dict()
      torch.save(state_dict, model_path)
      return model_path
  
imports: import io
  import types
  import logging
  import numbers
  import torch
  import numpy
  from zoo.orca.data.ray_xshards import RayXShards
  from zoo.orca.learn.pytorch.training_operator import TrainingOperator
  from zoo.orca.learn.pytorch.torch_runner import TorchRunner
  from zoo.orca.learn.utils import maybe_dataframe_to_xshards, dataframe_to_xshards, convert_predict_xshards_to_dataframe, update_predict_xshards, process_xshards_of_pandas_dataframe
  from zoo.ray import RayContext
  import ray
  from ray.exceptions import RayActorError
label_desc: Use image node_id 9 for calling the PyTorchRayEstimator obj's underlying member method code with example usage: obj.save(model_path) and returns: model_path