tltorch.FactorizedTensor

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

Tensor in Factorized form

Important

All tensor factorization must have an order parameter

Attributes:
decomposition

Returns the factors and parameters composing the tensor in factorized form

name

Factorization name (‘tucker’, ‘tt’, ‘cp’, …)

ndim

Order of the tensor

tensor_shape

Methods

dim()

Order of the tensor

forward([indices])

To use a tensor factorization within a network, use tensor.forward, or, equivalently, tensor()

from_tensor(tensor, rank[, factorization])

Create a factorized tensor by decomposing a dense tensor

new(shape[, rank, factorization])

Main way to create a factorized tensor

normal_([mean, std])

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

size([index])

shape of the tensor

to_tensor()

Reconstruct the full tensor from its factorized form

numel

classmethod new(shape, rank='same', factorization='Tucker', **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, factorization='CP', **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.

forward(indices=None, **kwargs)[source]

To use a tensor factorization within a network, use tensor.forward, or, equivalently, tensor()

Parameters:
indicesint or tuple[int], optional

use to index the tensor during the forward pass, by default None

Returns:
TensorFactorization

tensor[indices]

property decomposition

Returns the factors and parameters composing the tensor in factorized form

to_tensor()[source]

Reconstruct the full tensor from its factorized form

dim()[source]

Order of the tensor

See also

ndim

Notes

fact_tensor.dim() == fact_tensor.ndim

property ndim

Order of the tensor

See also

dim

Notes

fact_tensor.dim() == fact_tensor.ndim

size(index=None)[source]

shape of the tensor

Parameters:
indexint, or tuple, default is None

if not None, returns tensor.shape[index]

See also

shape
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
property name

Factorization name (‘tucker’, ‘tt’, ‘cp’, …)