t3toolbox.uniform_tucker_tensor_train.ut3_probe =============================================== .. py:function:: t3toolbox.uniform_tucker_tensor_train.ut3_probe(input_vectors: t3toolbox.backend.common.NDArray, x: UniformTuckerTensorTrain, use_jax: bool = False) -> t3toolbox.backend.common.NDArray Apply a uniform Tucker tensor train to vectors. WORK IN PROGRESS .. rubric:: Examples >>> import numpy as np >>> import t3toolbox.tucker_tensor_train as t3 >>> import t3toolbox.uniform_tucker_tensor_train as ut3 >>> x = t3.t3_corewise_randn((14,15,16), (4,5,6), (1,3,2,1)) >>> vecs = [np.random.randn(3,14), np.random.randn(3,15), np.random.randn(3,16)] >>> zz = t3.t3_probe(vecs, x) >>> uniform_x = ut3.t3_to_ut3(x) >>> uvecs = ut3.pack_vectors(vecs) >>> uzz = ut3.ut3_probe(uvecs, uniform_x) >>> zz2 = ut3.unpack_vectors(uzz, uniform_x.shape) >>> for z, z2 in zip(zz, zz2): print(np.linalg.norm(z - z2)) 5.654425920339536e-13 6.019471570221263e-13 9.452355114682054e-13 Vectorize over UT3s >>> import numpy as np >>> import t3toolbox.tucker_tensor_train as t3 >>> import t3toolbox.uniform_tucker_tensor_train as ut3 >>> x = t3.t3_corewise_randn((14,15,16), (4,5,6), (1,3,2,1), stack_shape=(2,3)) >>> vecs = [np.random.randn(3,14), np.random.randn(3,15), np.random.randn(3,16)] >>> zz = t3.t3_probe(vecs, x) >>> uniform_x = ut3.t3_to_ut3(x) >>> uvecs = ut3.pack_vectors(vecs) >>> uzz = ut3.ut3_probe(uvecs, uniform_x) >>> zz2 = ut3.unpack_vectors(uzz, uniform_x.shape) >>> for z, z2 in zip(zz, zz2): print(np.linalg.norm(z - z2)) 2.5704672147788592e-12 1.724614542977838e-12 2.394748346461898e-12