docstr: Normalizes the factors to unit length
  
  Turns ``factors = [|U_1, ... U_n|]`` into ``[weights; |V_1, ... V_n|]``,
  where the columns of each `V_k` are normalized to unit Euclidean length
  from the columns of `U_k` with the normalizing constants absorbed into
  `weights`. In the special case of a symmetric tensor, `weights` holds the
  eigenvalues of the tensor.
  
  Parameters
  ----------
  cp_tensor : CPTensor = (weight, factors)
      factors is list of matrices, all with the same number of columns
      i.e.::
          for u in U:
              u[i].shape == (s_i, R)
  
      where `R` is fixed while `s_i` can vary with `i`
  
  inplace : bool, default is True
      if False, returns a normalized Copy
      otherwise the tensor modifies itself and returns itself
  
  Returns
  -------
  CPTensor = (normalisation_weights, normalised_factors)
      returns itself if inplace is False, a normalized copy otherwise
docstr_tok: ["Normalizes","the","factors","to","unit","length","Turns","``","factors","=","[","|U_1",",","...","U_n|","]","``","into","``","[","weights",";","|V_1",",","...","V_n|","]","``",",","where","the","columns","of","each","`","V_k","`","are","normalized","to","unit","Euclidean","length","from","the","columns","of","`","U_k","`","with","the","normalizing","constants","absorbed","into","`","weights","`",".","In","the","special","case","of","a","symmetric","tensor",",","`","weights","`","holds","the","eigenvalues","of","the","tensor",".","Parameters","--","--","--","--","--","cp_tensor",":","CPTensor","=","(","weight",",","factors",")","factors","is","list","of","matrices",",","all","with","the","same","number","of","columns","i.e",".",":",":","for","u","in","U",":","u","[","i","]",".shape","==","(","s_i",",","R",")","where","`","R","`","is","fixed","while","`","s_i","`","can","vary","with","`","i","`","inplace",":","bool",",","default","is","True","if","False",",","returns","a","normalized","Copy","otherwise","the","tensor","modifies","itself","and","returns","itself","Returns","--","--","--","-","CPTensor","=","(","normalisation_weights",",","normalised_factors",")","returns","itself","if","inplace","is","False",",","a","normalized","copy","otherwise"]
code: def normalize(self, inplace=True):
      """Normalizes the factors to unit length
  
      Turns ``factors = [|U_1, ... U_n|]`` into ``[weights; |V_1, ... V_n|]``,
      where the columns of each `V_k` are normalized to unit Euclidean length
      from the columns of `U_k` with the normalizing constants absorbed into
      `weights`. In the special case of a symmetric tensor, `weights` holds the
      eigenvalues of the tensor.
  
      Parameters
      ----------
      cp_tensor : CPTensor = (weight, factors)
          factors is list of matrices, all with the same number of columns
          i.e.::
              for u in U:
                  u[i].shape == (s_i, R)
  
          where `R` is fixed while `s_i` can vary with `i`
  
      inplace : bool, default is True
          if False, returns a normalized Copy
          otherwise the tensor modifies itself and returns itself
  
      Returns
      -------
      CPTensor = (normalisation_weights, normalised_factors)
          returns itself if inplace is False, a normalized copy otherwise
      """
      self.weights, self.factors = cp_normalize(self)
  
imports: from .None import backend
  from .base import fold, tensor_to_vec
  from ._factorized_tensor import FactorizedTensor
  from .tenalg import khatri_rao, unfolding_dot_khatri_rao
  from .metrics.factors import congruence_coefficient
  import numpy
label_desc: Use image node_id 13 for calling the CPTensor obj's underlying member method code with example usage: obj.normalize(inplace) without return types