t3_entries_corewise_transpose#
- t3toolbox.backend.entries.t3_entries_corewise_transpose(c, index, core_pair, sum_over_probes=False)#
def t3_entries_corewise_transpose( c: NDArray, # residual, shape=W+C index: NDArray, # int, shape=(d,)+W 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 apply stack W (scatter-adds collisions) ) -> 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_entries(): gradient of the sampled entries w.r.t. the frame’s cores.The
entriescounterpart oft3_apply_corewise_transpose()– the Section 6.3 substitution intotv_entries_transpose(). Needs no ambientshapeargument: the dims come from the frametucker_cores.sum_over_probes=Truescatter-adds colliding indices (the gradientJ^T r).