t3toolbox.OLD_uniform.apply_masks#
- t3toolbox.OLD_uniform.apply_masks(cores: UniformTuckerTensorTrain, masks: UniformEdgeWeights, use_jax: bool = False) UniformTuckerTensorTrain#
Apply masks to uniform Tucker tensor train cores.
Examples
>>> import numpy as np >>> import t3toolbox.tucker_tensor_train as t3 >>> import t3toolbox.uniform as ut3 >>> import t3toolbox.t3svd as t3svd >>> import t3toolbox.corewise as cw >>> x = t3.t3_corewise_randn(((10,11,12), (5,6,4), (1,3,5,1))) >>> uniform_x, masks = ut3.t3_to_ut3(x) >>> uniform_x_svd, ss1, _ = t3svd.uniform_t3_svd(uniform_x, masks) >>> dense_x = t3.t3_to_dense(x) >>> print(np.linalg.norm(ut3.ut3_to_dense(uniform_x_svd, masks) - dense_x)) 3.0208288525321468e-12 >>> x_svd, ss2, _ = t3svd.t3svd(x) >>> print(np.linalg.norm(t3.t3_to_dense(x_svd) - dense_x)) 2.9361853188555994e-12 >>> x_svd_structure = t3.get_structure(x_svd) >>> uniform_x_svd_structure = ut3.get_uniform_structure(uniform_x_svd) >>> masks2 = ut3.make_uniform_masks(x_svd_structure, uniform_x_svd_structure) >>> print(np.linalg.norm(ut3.ut3_to_dense(uniform_x_svd, masks2) - dense_x)) 3.0208288525321468e-12 >>> print(cw.corewise_relerr(ut3.apply_masks(uniform_x_svd, masks2), uniform_x_svd)) 0.0024164186526434567 >>> print(cw.corewise_relerr(ut3.apply_masks(uniform_x_svd, masks), uniform_x_svd)) 0.0