t3_probe_corewise_transpose#

t3toolbox.backend.probing.t3_probe_corewise_transpose(ztildes, ww, core_pair, sum_over_probes=False)#
def t3_probe_corewise_transpose(
        ztildes:    typ.Sequence[NDArray],  # probe residuals, len=d, elm_shape=W+C+(Ni,)
        ww:         typ.Sequence[NDArray],  # probe vectors,   len=d, elm_shape=W+(Ni,)
        core_pair:  typ.Tuple[
            typ.Sequence[NDArray],          # tucker_cores, len=d, elm_shape=C+(ni,Ni)
            typ.Sequence[NDArray],          # tt_cores,     len=d, elm_shape=C+(ri,ni,r(i+1))
        ],
        sum_over_probes: bool = False,      # True: sum the probe stack W (the gradient J^T r)
) -> typ.Tuple[
    typ.Tuple[NDArray, ...],  # tucker-core gradients, same shapes as tucker_cores
    typ.Tuple[NDArray, ...],  # tt-core gradients,     same shapes as tt_cores
]:

Corewise (non-manifold) transpose of t3_probe(): gradient of the probes w.r.t. the cores of the frame core_pair, treated as independent variables.

The probe analog of t3_apply_corewise_transpose() – the Section 6.3 substitution P, Q, O -> G_i (U non-orthogonal) into tv_probe_transpose(), i.e. that transpose at frame (U, G, G, G). Returns gradients shaped exactly like (tucker_cores, tt_cores) (a gradient, not a tensor; no |W| blow-up). For non-manifold optimizers (Adam, L-BFGS) fitting from probes. sum_over_probes=True sums the probe stack W (the gradient J^T r); False keeps it. Math reference: Section 6.3, Alger et al. (2026) (arXiv:2603.21141).

Parameters:
  • ztildes (t3toolbox.backend.common.typ.Sequence[NDArray])

  • ww (t3toolbox.backend.common.typ.Sequence[NDArray])

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

  • sum_over_probes (bool)

Return type:

t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[NDArray, Ellipsis], t3toolbox.backend.common.typ.Tuple[NDArray, Ellipsis]]