docstr: n-mode product of a CP tensor and a matrix or vector at the specified mode
  
  Parameters
  ----------
  cp_tensor : tl.CPTensor or (core, factors)
  
  matrix_or_vector : ndarray
      1D or 2D array of shape ``(J, i_k)`` or ``(i_k, )``
      matrix or vectors to which to n-mode multiply the tensor
  mode : int
  
  Returns
  -------
  CPTensor = (core, factors)
      `mode`-mode product of `tensor` by `matrix_or_vector`
      * of shape :math:`(i_1, ..., i_{k-1}, J, i_{k+1}, ..., i_N)` if matrix_or_vector is a matrix
      * of shape :math:`(i_1, ..., i_{k-1}, i_{k+1}, ..., i_N)` if matrix_or_vector is a vector
  
  See also
  --------
  cp_mode_dot : chaining several mode_dot in one call
docstr_tok: ["n-mode","product","of","a","CP","tensor","and","a","matrix","or","vector","at","the","specified","mode","Parameters","--","--","--","--","--","cp_tensor",":","tl.CPTensor","or","(","core",",","factors",")","matrix_or_vector",":","ndarray","1D","or","2D","array","of","shape","``","(","J",",","i_k",")","``","or","``","(","i_k",",",")","``","matrix","or","vectors","to","which","to","n-mode","multiply","the","tensor","mode",":","int","Returns","--","--","--","-","CPTensor","=","(","core",",","factors",")","`","mode","`","-mode","product","of","`","tensor","`","by","`","matrix_or_vector","`","*","of","shape",":","math",":","`","(","i_1",",","...",",","i_","{","k-1","}",",","J",",","i_","{","k+1","}",",","...",",","i_N",")","`","if","matrix_or_vector","is","a","matrix","*","of","shape",":","math",":","`","(","i_1",",","...",",","i_","{","k-1","}",",","i_","{","k+1","}",",","...",",","i_N",")","`","if","matrix_or_vector","is","a","vector","See","also","--","--","--","--","cp_mode_dot",":","chaining","several","mode_dot","in","one","call"]
code: def mode_dot(self, matrix_or_vector, mode, keep_dim=False, copy=True):
      """n-mode product of a CP tensor and a matrix or vector at the specified mode
  
      Parameters
      ----------
      cp_tensor : tl.CPTensor or (core, factors)
  
      matrix_or_vector : ndarray
          1D or 2D array of shape ``(J, i_k)`` or ``(i_k, )``
          matrix or vectors to which to n-mode multiply the tensor
      mode : int
  
      Returns
      -------
      CPTensor = (core, factors)
          `mode`-mode product of `tensor` by `matrix_or_vector`
          * of shape :math:`(i_1, ..., i_{k-1}, J, i_{k+1}, ..., i_N)` if matrix_or_vector is a matrix
          * of shape :math:`(i_1, ..., i_{k-1}, i_{k+1}, ..., i_N)` if matrix_or_vector is a vector
  
      See also
      --------
      cp_mode_dot : chaining several mode_dot in one call
      """
      return cp_mode_dot(
          self, matrix_or_vector, mode, keep_dim=keep_dim, copy=copy
      )
  
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 11 for calling the CPTensor obj's underlying member method code with example usage: obj.mode_dot(matrix_or_vector, mode, keep_dim, copy) and returns: cp_mode_dot