Instantiate an SparseGPClassification object using the information
        in input_dict (built by the to_dict method).

        :param data: It is used to provide X and Y for the case when the model
           was saved using save_data=False in to_dict method.
        :type data: tuple(:class:`np.ndarray`, :class:`np.ndarray`)

def from_dict(input_dict, data=None):
        """
        Instantiate an SparseGPClassification object using the information
        in input_dict (built by the to_dict method).

        :param data: It is used to provide X and Y for the case when the model
           was saved using save_data=False in to_dict method.
        :type data: tuple(:class:`np.ndarray`, :class:`np.ndarray`)
        """
        import GPy
        m = GPy.core.model.Model.from_dict(input_dict, data)
        from copy import deepcopy
        sparse_gp = deepcopy(m)
        return SparseGPClassification(sparse_gp.X, sparse_gp.Y, sparse_gp.Z, sparse_gp.kern, sparse_gp.likelihood,  sparse_gp.inference_method, sparse_gp.mean_function, name='sparse_gp_classification')