tltorch.TTTensor

class tltorch.TTTensor(*args, **kwargs)[source]

Tensor-Train (Matrix-Product-State) Factorization

Parameters:
factors
shape
rank
Attributes:
decomposition

Returns the factors and parameters composing the tensor in factorized form

Methods

from_tensor(tensor[, rank])

Create a factorized tensor by decomposing a dense tensor

new(shape, rank[, device, dtype])

Main way to create a factorized tensor

normal_([mean, std])

Inialize the factors of the factorization such that the reconstruction follows a Gaussian distribution

to_tensor()

Reconstruct the full tensor from its factorized form

transduct(new_dim[, mode, new_factor])

Transduction adds a new dimension to the existing factorization

init_from_tensor

classmethod new(shape, rank, device=None, dtype=None, **kwargs)[source]

Main way to create a factorized tensor

Parameters:
shapetuple[int]

shape of the factorized tensor to create

rankint, ‘same’ or float, default is ‘same’

rank of the decomposition

factorization{‘CP’, ‘TT’, ‘Tucker’}, optional

Tensor factorization to use to decompose the tensor, by default ‘Tucker’

Returns:
TensorFactorization

Tensor in Factorized form.

Raises:
ValueError

If the factorization given does not exist.

Examples

Create a Tucker tensor of shape (3, 4, 2) with half the parameters as a dense tensor would:

>>> tucker_tensor = FactorizedTensor.new((3, 4, 2)), rank=0.5, factorization='tucker')
classmethod from_tensor(tensor, rank='same', **kwargs)[source]

Create a factorized tensor by decomposing a dense tensor

Parameters:
tensortorch.tensor

tensor to factorize

rankint, ‘same’ or float

rank of the decomposition

factorization{‘CP’, ‘TT’, ‘Tucker’}, optional

Tensor factorization to use to decompose the tensor, by default ‘CP’

Returns:
TensorFactorization

Tensor in Factorized form.

Raises:
ValueError

If the factorization given does not exist.

property decomposition

Returns the factors and parameters composing the tensor in factorized form

to_tensor()[source]

Reconstruct the full tensor from its factorized form

normal_(mean=0, std=1)[source]

Inialize the factors of the factorization such that the reconstruction follows a Gaussian distribution

Parameters:
meanfloat, currently only 0 is supported
stdfloat

standard deviation

Returns:
self
transduct(new_dim, mode=0, new_factor=None)[source]

Transduction adds a new dimension to the existing factorization

Parameters:
new_dimint

dimension of the new mode to add

modewhere to insert the new dimension, after the channels, default is 0

by default, insert the new dimensions before the existing ones (e.g. add time before height and width)

Returns:
self