UT3Weights.from_ut3svd#
- classmethod t3toolbox.uniform_tucker_tensor_train.UT3Weights.from_ut3svd(x, n=None, r=None, **kwargs)#
def from_ut3svd( cls, x: 'UniformTuckerTensorTrain', n: Optional[int] = None, # padded Tucker width of the result; must be >= the t3svd result's (only grows) r: Optional[int] = None, # padded TT width of the result; e.g. n=x.n, r=x.r to pair with x itself **kwargs, # passed to UniformTuckerTensorTrain.t3svd (max_*_ranks, sharing, ...) ) -> 'UT3Weights':
The singular values of
xas a weight object – the canonical (unmodified) sigmas, sofrom_ut3svd(x).reciprocal()is the inverse-sigma (Grasedyck-Kramer) weighting. Uniform twin offrom_t3svd().By default the weights carry the t3svd result’s (tight) masks, so they pair with that result – which is
xitself only whenxalready has minimal ranks and tight padding:xs, _, _ = x.t3svd(); W = UT3Weights.from_ut3svd(x); absorb_weights(xs, W)On a train padded ABOVE its minimal ranks – the rank-continuation warm start – pass
n/r(typicallyn=x.n, r=x.r, mirroringfrom_t3weights()) to zero-pad the weights to the train’s own widths, soW.is_consistent_with(x)holds and the headline GK routeUT3FrameWeights.from_ut3weights(W).reciprocal()pairs withx’s frame with no ragged detour (review R10-4). Padding only grows: smaller-than-tightn/rraise.- Parameters:
n (Optional[int])
r (Optional[int])
- Return type: