class_docstr: Standard GMM.
  
  this class contains the following members
  k (int): the number of components in the mixture
  dim (int): is the dimension of the data
  prec_type = 'full' (string) is the parameterization
            of the precisions/covariance matrices:
            either 'full' or 'diagonal'.
  means: array of shape (k,dim):
        all the means (mean parameters) of the components
  precisions: array of shape (k,dim,dim):
             the precisions (inverse covariance matrix) of the components
  weights: array of shape(k): weights of the mixture
  
  fixme
  -----
  no copy method
class_docstr_tok: ["Standard","GMM",".","this","class","contains","the","following","members","k","(","int",")",":","the","number","of","components","in","the","mixture","dim","(","int",")",":","is","the","dimension","of","the","data","prec_type","=","'full","'","(","string",")","is","the","parameterization","of","the","precisions\/covariance","matrices",":","either","'full","'","or","'diagonal","'",".","means",":","array","of","shape","(","k",",","dim",")",":","all","the","means","(","mean","parameters",")","of","the","components","precisions",":","array","of","shape","(","k",",","dim",",","dim",")",":","the","precisions","(","inverse","covariance","matrix",")","of","the","components","weights",":","array","of","shape","(","k",")",":","weights","of","the","mixture","fixme","--","--","-","no","copy","method"]
docstr: Checking the shape of different matrices involved in the model
docstr_tok: ["Checking","the","shape","of","different","matrices","involved","in","the","model"]
code: def check(self):
      """
      Checking the shape of different matrices involved in the model
      """
      if self.means.shape[0] != self.k:
          raise ValueError(
              "self.means does not have correct dimensions"
          )
  
      if self.means.shape[1] != self.dim:
          raise ValueError(
              "self.means does not have correct dimensions"
          )
  
      if self.weights.size != self.k:
          raise ValueError(
              "self.weights does not have correct dimensions"
          )
  
      if self.dim != self.precisions.shape[1]:
          raise ValueError(
              "self.precisions does not have correct dimensions"
          )
  
      if self.prec_type == "full":
          if self.dim != self.precisions.shape[2]:
              raise ValueError(
                  "self.precisions does not have correct dimensions"
              )
  
      if self.prec_type == "diag":
          if np.shape(self.precisions) != np.shape(self.means):
              raise ValueError(
                  "self.precisions does not have correct dimensions"
              )
  
      if self.precisions.shape[0] != self.k:
          raise ValueError(
              "self.precisions does not have correct dimensions"
          )
  
      if self.prec_type not in ["full", "diag"]:
          raise ValueError("unknown precisions type")
  
imports: import numpy
  from scipy.linalg import eigvalsh
label_desc: Use image node_id 3 for calling the GMM obj's underlying member method code with example usage: obj.check() without return types