t3_weighted_norm#

t3toolbox.backend.t3_linalg.t3_weighted_norm(x0, weights, use_orthogonalization=True)#
def t3_weighted_norm(
        x0:      typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]],  # (tucker_cores, tt_cores)
        weights: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]],  # (tucker_weights, tt_weights)
        use_orthogonalization: bool = True,                                # for numerical stability
) -> NDArray:                                                              # weighted HS norm, shape=stack_shape

Weighted Hilbert-Schmidt norm of a Tucker tensor train: t3_norm(absorb(x0, weights)) – the norm of the fully-weighted network. The plain norm squares the inserted diagonals (so diag(1/sigma) penalises by 1/sigma^2).

Parameters:
  • x0 (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • weights (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • use_orthogonalization (bool)

Return type:

NDArray