code: def from_dict(input_dict, data=None):
          
          import copy
          input_dict = copy.deepcopy(input_dict)
          model_class = input_dict.pop('class')
          input_dict["name"] = str(input_dict["name"])
          import GPy
          model_class = eval(model_class)
          return model_class._build_from_input_dict(input_dict, data)
docs: Instantiate an object of a derived class using the information
          in input_dict (built by the to_dict method of the derived class).
          More specifically, after reading the derived class from input_dict,
          it calls the method _build_from_input_dict of the derived class.
          Note: This method should not be overrided in the derived class. In case
          it is needed, please override _build_from_input_dict instate.
  
          :param dict input_dict: Dictionary with all the information needed to
             instantiate the object.