Skip to content

tensor.transformer

startorch.tensor.transformer

Contain tensor transformer implementations.

startorch.tensor.transformer.Abs

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the absolute value of a tensor.

This tensor transformer is equivalent to: output = abs(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Abs
>>> transformer = Abs()
>>> transformer
AbsTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[1., 2., 3.], [4., 5., 6.]])

startorch.tensor.transformer.AbsTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the absolute value of a tensor.

This tensor transformer is equivalent to: output = abs(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Abs
>>> transformer = Abs()
>>> transformer
AbsTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[1., 2., 3.], [4., 5., 6.]])

startorch.tensor.transformer.Acosh

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the inverse hyperbolic cosine (arccosh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Acosh
>>> transformer = Acosh()
>>> transformer
AcoshTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[0.0000, 1.3170, 1.7627], [2.0634, 2.2924, 2.4779]])

startorch.tensor.transformer.AcoshTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the inverse hyperbolic cosine (arccosh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Acosh
>>> transformer = Acosh()
>>> transformer
AcoshTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[0.0000, 1.3170, 1.7627], [2.0634, 2.2924, 2.4779]])

startorch.tensor.transformer.Add

Bases: BaseTensorTransformer

Implement a tensor transformer that adds a scalar value to the input tensor.

This tensor transformer is equivalent to: output = input + value

Parameters:

Name Type Description Default
value float

The value to add to the input tensor.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Add
>>> transformer = Add(1)
>>> transformer
AddTensorTransformer(value=1)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 2., -1.,  4.], [-3.,  6., -5.]])

startorch.tensor.transformer.AddTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that adds a scalar value to the input tensor.

This tensor transformer is equivalent to: output = input + value

Parameters:

Name Type Description Default
value float

The value to add to the input tensor.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Add
>>> transformer = Add(1)
>>> transformer
AddTensorTransformer(value=1)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 2., -1.,  4.], [-3.,  6., -5.]])

startorch.tensor.transformer.Asinh

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the inverse hyperbolic sine (arcsinh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Asinh
>>> transformer = Asinh()
>>> transformer
AsinhTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[0.8814, 1.4436, 1.8184], [2.0947, 2.3124, 2.4918]])

startorch.tensor.transformer.AsinhTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the inverse hyperbolic sine (arcsinh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Asinh
>>> transformer = Asinh()
>>> transformer
AsinhTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[0.8814, 1.4436, 1.8184], [2.0947, 2.3124, 2.4918]])

startorch.tensor.transformer.Atanh

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the inverse hyperbolic tangent (arctanh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Atanh
>>> transformer = Atanh()
>>> transformer
AtanhTensorTransformer()
>>> out = transformer.transform(torch.tensor([[-0.5, -0.1, 0.0], [0.1, 0.2, 0.5]]))
>>> out
tensor([[-0.5493, -0.1003,  0.0000], [ 0.1003,  0.2027,  0.5493]])

startorch.tensor.transformer.AtanhTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the inverse hyperbolic tangent (arctanh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Atanh
>>> transformer = Atanh()
>>> transformer
AtanhTensorTransformer()
>>> out = transformer.transform(torch.tensor([[-0.5, -0.1, 0.0], [0.1, 0.2, 0.5]]))
>>> out
tensor([[-0.5493, -0.1003,  0.0000], [ 0.1003,  0.2027,  0.5493]])

startorch.tensor.transformer.BaseTensorTransformer

Bases: ABC

Define the base class to transform a tensor.

A child class has to implement the transform method.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Identity
>>> transformer = Identity()
>>> transformer
IdentityTensorTransformer(copy=True)
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[1., 2., 3.], [4., 5., 6.]])

startorch.tensor.transformer.BaseTensorTransformer.transform abstractmethod

transform(
    tensor: Tensor, *, rng: Transformer | None = None
) -> Tensor

Transform the input tensor.

Parameters:

Name Type Description Default
tensor Tensor

The tensor to transform.

required
rng Transformer | None

An optional random number transformer.

None

Returns:

Type Description
Tensor

The transformed tensor.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Identity
>>> transformer = Identity()
>>> transformer
IdentityTensorTransformer(copy=True)
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[1., 2., 3.], [4., 5., 6.]])

startorch.tensor.transformer.Ceil

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the ceil of the elements of the input tensor.

This tensor transformer is equivalent to: output = ceil(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Ceil
>>> transformer = Ceil()
>>> transformer
CeilTensorTransformer()
>>> out = transformer.transform(torch.tensor([[-0.6, -1.4, 2.2], [-1.1,  0.5, 0.2]]))
>>> out
tensor([[-0., -1.,  3.], [-1.,  1.,  1.]])

startorch.tensor.transformer.CeilTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the ceil of the elements of the input tensor.

This tensor transformer is equivalent to: output = ceil(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Ceil
>>> transformer = Ceil()
>>> transformer
CeilTensorTransformer()
>>> out = transformer.transform(torch.tensor([[-0.6, -1.4, 2.2], [-1.1,  0.5, 0.2]]))
>>> out
tensor([[-0., -1.,  3.], [-1.,  1.,  1.]])

startorch.tensor.transformer.Clamp

Bases: BaseTensorTransformer

Implement a tensor transformer to generate a tensor where the values are clamped.

Note: min and max cannot be both None.

Parameters:

Name Type Description Default
min float | None

The lower bound. If min is None, there is no lower bound.

required
max float | None

The upper bound. If max is None, there is no upper bound.

required

Raises:

Type Description
ValueError

if both min and max are None

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Clamp
>>> transformer = Clamp(min=-2.0, max=2.0)
>>> transformer
ClampTensorTransformer(min=-2.0, max=2.0)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 1., -2.,  2.], [-2.,  2., -2.]])

startorch.tensor.transformer.ClampTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer to generate a tensor where the values are clamped.

Note: min and max cannot be both None.

Parameters:

Name Type Description Default
min float | None

The lower bound. If min is None, there is no lower bound.

required
max float | None

The upper bound. If max is None, there is no upper bound.

required

Raises:

Type Description
ValueError

if both min and max are None

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Clamp
>>> transformer = Clamp(min=-2.0, max=2.0)
>>> transformer
ClampTensorTransformer(min=-2.0, max=2.0)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 1., -2.,  2.], [-2.,  2., -2.]])

startorch.tensor.transformer.Cosh

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the hyperbolic cosine (cosh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Cosh
>>> transformer = Cosh()
>>> transformer
CoshTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 4.5, 6.0]]))
>>> out
tensor([[  1.5431,   3.7622,  10.0677], [ 27.3082,  45.0141, 201.7156]])

startorch.tensor.transformer.CoshTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the hyperbolic cosine (cosh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Cosh
>>> transformer = Cosh()
>>> transformer
CoshTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 4.5, 6.0]]))
>>> out
tensor([[  1.5431,   3.7622,  10.0677], [ 27.3082,  45.0141, 201.7156]])

startorch.tensor.transformer.Div

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the division operation.

This tensor transformer is equivalent to: output = input % divisor

Parameters:

Name Type Description Default
divisor float

The divisor value.

required
rounding_mode str | None

The type of rounding applied to the result. - None: true division. - "trunc": rounds the results of the division towards zero. - "floor": floor division.

None

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Div
>>> transformer = Div(divisor=4)
>>> transformer
DivTensorTransformer(divisor=4, rounding_mode=None)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 0.2500, -0.5000,  0.7500], [-1.0000,  1.2500, -1.5000]])

startorch.tensor.transformer.DivTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the division operation.

This tensor transformer is equivalent to: output = input % divisor

Parameters:

Name Type Description Default
divisor float

The divisor value.

required
rounding_mode str | None

The type of rounding applied to the result. - None: true division. - "trunc": rounds the results of the division towards zero. - "floor": floor division.

None

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Div
>>> transformer = Div(divisor=4)
>>> transformer
DivTensorTransformer(divisor=4, rounding_mode=None)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 0.2500, -0.5000,  0.7500], [-1.0000,  1.2500, -1.5000]])

startorch.tensor.transformer.Exp

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the exponential of the input tensor.

This tensor transformer is equivalent to: output = exp(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Exp
>>> transformer = Exp()
>>> transformer
ExpTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[2.7183e+00, 1.3534e-01, 2.0086e+01], [1.8316e-02, 1.4841e+02, 2.4788e-03]])

startorch.tensor.transformer.ExpTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the exponential of the input tensor.

This tensor transformer is equivalent to: output = exp(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Exp
>>> transformer = Exp()
>>> transformer
ExpTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[2.7183e+00, 1.3534e-01, 2.0086e+01], [1.8316e-02, 1.4841e+02, 2.4788e-03]])

startorch.tensor.transformer.Expm1

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the exponential of the input tensor.

This tensor transformer is equivalent to: output = exp(input) - 1

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Expm1
>>> transformer = Expm1()
>>> transformer
Expm1TensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[  1.7183,  -0.8647,  19.0855], [ -0.9817, 147.4132,  -0.9975]])

startorch.tensor.transformer.Expm1TensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the exponential of the input tensor.

This tensor transformer is equivalent to: output = exp(input) - 1

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Expm1
>>> transformer = Expm1()
>>> transformer
Expm1TensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[  1.7183,  -0.8647,  19.0855], [ -0.9817, 147.4132,  -0.9975]])

startorch.tensor.transformer.Exponential

Bases: BaseTensorTransformer

Implement a tensor transformer that samples values from an Exponential distribution.

The input tensor is interpreted as the rate parameters of the Exponential distribution.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Exponential
>>> transformer = Exponential()
>>> transformer
ExponentialTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[...]])

startorch.tensor.transformer.ExponentialTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that samples values from an Exponential distribution.

The input tensor is interpreted as the rate parameters of the Exponential distribution.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Exponential
>>> transformer = Exponential()
>>> transformer
ExponentialTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[...]])

startorch.tensor.transformer.Float

Bases: BaseTensorTransformer

Implement a tensor transfomer that converts tensor values to float.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Float
>>> transformer = Float()
>>> transformer
FloatTensorTransformer()
>>> transformer.transform(torch.tensor([[1, -2, 3], [-4, 5, -6]]))
tensor([[ 1., -2.,  3.], [-4.,  5., -6.]])

startorch.tensor.transformer.FloatTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transfomer that converts tensor values to float.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Float
>>> transformer = Float()
>>> transformer
FloatTensorTransformer()
>>> transformer.transform(torch.tensor([[1, -2, 3], [-4, 5, -6]]))
tensor([[ 1., -2.,  3.], [-4.,  5., -6.]])

startorch.tensor.transformer.Floor

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the floor of the elements of the input tensor.

This tensor transformer is equivalent to: output = floor(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Floor
>>> transformer = Floor()
>>> transformer
FloorTensorTransformer()
>>> out = transformer.transform(torch.tensor([[-0.6, -1.4, 2.2], [-1.1,  0.5, 0.2]]))
>>> out
tensor([[-1., -2.,  2.], [-2.,  0.,  0.]])

startorch.tensor.transformer.FloorTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the floor of the elements of the input tensor.

This tensor transformer is equivalent to: output = floor(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Floor
>>> transformer = Floor()
>>> transformer
FloorTensorTransformer()
>>> out = transformer.transform(torch.tensor([[-0.6, -1.4, 2.2], [-1.1,  0.5, 0.2]]))
>>> out
tensor([[-1., -2.,  2.], [-2.,  0.,  0.]])

startorch.tensor.transformer.Fmod

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the floating-point remainder of the division operation.

This tensor transformer is equivalent to: output = input % divisor

Parameters:

Name Type Description Default
divisor float

The divisor value.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Fmod
>>> transformer = Fmod(divisor=4)
>>> transformer
FmodTensorTransformer(divisor=4)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 1., -2.,  3.], [-0.,  1., -2.]])

startorch.tensor.transformer.FmodTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the floating-point remainder of the division operation.

This tensor transformer is equivalent to: output = input % divisor

Parameters:

Name Type Description Default
divisor float

The divisor value.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Fmod
>>> transformer = Fmod(divisor=4)
>>> transformer
FmodTensorTransformer(divisor=4)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 1., -2.,  3.], [-0.,  1., -2.]])

startorch.tensor.transformer.Frac

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the fractional portion of each element of the input tensor.

This tensor transformer is equivalent to: output = frac(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Frac
>>> transformer = Frac()
>>> transformer
FracTensorTransformer()
>>> out = transformer.transform(torch.tensor([[-0.6, -1.4, 2.2], [-1.1,  0.5, 0.2]]))
>>> out
tensor([[-0.6000, -0.4000,  0.2000], [-0.1000,  0.5000,  0.2000]])

startorch.tensor.transformer.FracTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the fractional portion of each element of the input tensor.

This tensor transformer is equivalent to: output = frac(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Frac
>>> transformer = Frac()
>>> transformer
FracTensorTransformer()
>>> out = transformer.transform(torch.tensor([[-0.6, -1.4, 2.2], [-1.1,  0.5, 0.2]]))
>>> out
tensor([[-0.6000, -0.4000,  0.2000], [-0.1000,  0.5000,  0.2000]])

startorch.tensor.transformer.Identity

Bases: BaseTensorTransformer

Implement the identity transformation.

Parameters:

Name Type Description Default
copy bool

If True, it returns a copy of the input tensor, otherwise it returns the input tensor.

True

Example usage:

>>> import torch
>>> from startorch.transformer import Identity
>>> transformer = Identity()
>>> transformer
IdentityTransformer(copy=True)
>>> data = {"key": torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])}
>>> out = transformer.transform(data)
>>> out
{'key': tensor([[1., 2., 3.],
                [4., 5., 6.]])}

startorch.tensor.transformer.IdentityTensorTransformer

Bases: BaseTensorTransformer

Implement the identity transformation.

Parameters:

Name Type Description Default
copy bool

If True, it returns a copy of the input tensor, otherwise it returns the input tensor.

True

Example usage:

>>> import torch
>>> from startorch.transformer import Identity
>>> transformer = Identity()
>>> transformer
IdentityTransformer(copy=True)
>>> data = {"key": torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])}
>>> out = transformer.transform(data)
>>> out
{'key': tensor([[1., 2., 3.],
                [4., 5., 6.]])}

startorch.tensor.transformer.Log

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the logarithm of the input tensor.

This tensor transformer is equivalent to: output = log(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Log
>>> transformer = Log()
>>> transformer
LogTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[0.0000, 0.6931, 1.0986], [1.3863, 1.6094, 1.7918]])

startorch.tensor.transformer.Log1p

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the logarithm of the input tensor.

This tensor transformer is equivalent to: output = log(input + 1)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Log1p
>>> transformer = Log1p()
>>> transformer
Log1pTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0]]))
>>> out
tensor([[0.0000, 0.6931, 1.0986], [1.3863, 1.6094, 1.7918]])

startorch.tensor.transformer.Log1pTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the logarithm of the input tensor.

This tensor transformer is equivalent to: output = log(input + 1)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Log1p
>>> transformer = Log1p()
>>> transformer
Log1pTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0]]))
>>> out
tensor([[0.0000, 0.6931, 1.0986], [1.3863, 1.6094, 1.7918]])

startorch.tensor.transformer.LogTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the logarithm of the input tensor.

This tensor transformer is equivalent to: output = log(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Log
>>> transformer = Log()
>>> transformer
LogTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[0.0000, 0.6931, 1.0986], [1.3863, 1.6094, 1.7918]])

startorch.tensor.transformer.Logit

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the logit of each element of the input tensor.

Parameters:

Name Type Description Default
eps float | None

The epsilon for input clamp bound.

None

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Logit
>>> transformer = Logit()
>>> transformer
LogitTensorTransformer(eps=None)
>>> out = transformer.transform(torch.tensor([[0.6, 0.4, 0.3], [0.1, 0.5, 0.2]]))
>>> out
tensor([[ 0.4055, -0.4055, -0.8473], [-2.1972,  0.0000, -1.3863]])

startorch.tensor.transformer.LogitTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the logit of each element of the input tensor.

Parameters:

Name Type Description Default
eps float | None

The epsilon for input clamp bound.

None

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Logit
>>> transformer = Logit()
>>> transformer
LogitTensorTransformer(eps=None)
>>> out = transformer.transform(torch.tensor([[0.6, 0.4, 0.3], [0.1, 0.5, 0.2]]))
>>> out
tensor([[ 0.4055, -0.4055, -0.8473], [-2.1972,  0.0000, -1.3863]])

startorch.tensor.transformer.Long

Bases: BaseTensorTransformer

Implement a tensor transfomer that converts a tensor values to long.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Long
>>> transformer = Long()
>>> transformer
LongTensorTransformer()
>>> transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
tensor([[ 1, -2,  3], [-4,  5, -6]])

startorch.tensor.transformer.LongTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transfomer that converts a tensor values to long.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Long
>>> transformer = Long()
>>> transformer
LongTensorTransformer()
>>> transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
tensor([[ 1, -2,  3], [-4,  5, -6]])

startorch.tensor.transformer.Mul

Bases: BaseTensorTransformer

Implement a tensor transformer that multiplies a scalar value to the input tensor.

This tensor transformer is equivalent to: output = input * value

Parameters:

Name Type Description Default
value float

The value to multiply to the input tensor.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Mul
>>> transformer = Mul(2)
>>> transformer
MulTensorTransformer(value=2)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[  2.,  -4.,   6.], [ -8.,  10., -12.]])

startorch.tensor.transformer.MulTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that multiplies a scalar value to the input tensor.

This tensor transformer is equivalent to: output = input * value

Parameters:

Name Type Description Default
value float

The value to multiply to the input tensor.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Mul
>>> transformer = Mul(2)
>>> transformer
MulTensorTransformer(value=2)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[  2.,  -4.,   6.], [ -8.,  10., -12.]])

startorch.tensor.transformer.Neg

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the negative of the input tensor.

This tensor transformer is equivalent to: output = sqrt(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Neg
>>> transformer = Neg()
>>> transformer
NegTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, -1.0, 2.0], [-3.0, 4.0, -5.0]]))
>>> out
tensor([[-0.,  1., -2.], [ 3., -4.,  5.]])

startorch.tensor.transformer.NegTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the negative of the input tensor.

This tensor transformer is equivalent to: output = sqrt(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Neg
>>> transformer = Neg()
>>> transformer
NegTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, -1.0, 2.0], [-3.0, 4.0, -5.0]]))
>>> out
tensor([[-0.,  1., -2.], [ 3., -4.,  5.]])

startorch.tensor.transformer.Poisson

Bases: BaseTensorTransformer

Implement a tensor transformer that samples values from an Poisson distribution.

The input tensor is interpreted as the rate parameters of the Poisson distribution.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Poisson
>>> transformer = Poisson()
>>> transformer
PoissonTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[...]])

startorch.tensor.transformer.PoissonTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that samples values from an Poisson distribution.

The input tensor is interpreted as the rate parameters of the Poisson distribution.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Poisson
>>> transformer = Poisson()
>>> transformer
PoissonTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[...]])

startorch.tensor.transformer.Pow

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the power of each element in the input tensor.

This tensor transformer is equivalent to: output = input ** exponent

Parameters:

Name Type Description Default
exponent float

The exponent value.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Pow
>>> transformer = Pow(2)
>>> transformer
PowTensorTransformer(exponent=2)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 1.,  4.,  9.], [16., 25., 36.]])

startorch.tensor.transformer.PowTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the power of each element in the input tensor.

This tensor transformer is equivalent to: output = input ** exponent

Parameters:

Name Type Description Default
exponent float

The exponent value.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Pow
>>> transformer = Pow(2)
>>> transformer
PowTensorTransformer(exponent=2)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[ 1.,  4.,  9.], [16., 25., 36.]])

startorch.tensor.transformer.Round

Bases: BaseTensorTransformer

Implement a tensor transformer that rounds elements of input tensor to the nearest integer.

Parameters:

Name Type Description Default
decimals int

The number of decimal places to round to. If decimals is negative, it specifies the number of positions to the left of the decimal point.

0

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Round
>>> transformer = Round()
>>> transformer
RoundTensorTransformer(decimals=0)
>>> out = transformer.transform(torch.tensor([[-0.6, -1.4, 2.2], [-1.1,  0.7, 0.2]]))
>>> out
tensor([[-1., -1.,  2.], [-1.,  1.,  0.]])

startorch.tensor.transformer.RoundTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that rounds elements of input tensor to the nearest integer.

Parameters:

Name Type Description Default
decimals int

The number of decimal places to round to. If decimals is negative, it specifies the number of positions to the left of the decimal point.

0

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Round
>>> transformer = Round()
>>> transformer
RoundTensorTransformer(decimals=0)
>>> out = transformer.transform(torch.tensor([[-0.6, -1.4, 2.2], [-1.1,  0.7, 0.2]]))
>>> out
tensor([[-1., -1.,  2.], [-1.,  1.,  0.]])

startorch.tensor.transformer.Rsqrt

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the reciprocal of the square-root of each of the elements of the input tensor.

This tensor transformer is equivalent to: output = rsqrt(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Rsqrt
>>> transformer = Rsqrt()
>>> transformer
RsqrtTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 4.0, 16.0], [1.0, 2.0, 3.0]]))
>>> out
tensor([[1.0000, 0.5000, 0.2500], [1.0000, 0.7071, 0.5774]])

startorch.tensor.transformer.RsqrtTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the reciprocal of the square-root of each of the elements of the input tensor.

This tensor transformer is equivalent to: output = rsqrt(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Rsqrt
>>> transformer = Rsqrt()
>>> transformer
RsqrtTensorTransformer()
>>> out = transformer.transform(torch.tensor([[1.0, 4.0, 16.0], [1.0, 2.0, 3.0]]))
>>> out
tensor([[1.0000, 0.5000, 0.2500], [1.0000, 0.7071, 0.5774]])

startorch.tensor.transformer.Sequential

Bases: BaseTensorTransformer

Implement a transformer that sequentially computes tensor transformations.

Parameters:

Name Type Description Default
transformers Sequence[BaseTensorTransformer | dict]

The sequence of tensor transformers or their configurations.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sequential, Abs, Clamp
>>> transformer = Sequential([Abs(), Clamp(min=-1, max=2)])
>>> transformer
SequentialTensorTransformer(
  (0): AbsTensorTransformer()
  (1): ClampTensorTransformer(min=-1, max=2)
)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[1., 2., 2.], [2., 2., 2.]])

startorch.tensor.transformer.SequentialTensorTransformer

Bases: BaseTensorTransformer

Implement a transformer that sequentially computes tensor transformations.

Parameters:

Name Type Description Default
transformers Sequence[BaseTensorTransformer | dict]

The sequence of tensor transformers or their configurations.

required

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sequential, Abs, Clamp
>>> transformer = Sequential([Abs(), Clamp(min=-1, max=2)])
>>> transformer
SequentialTensorTransformer(
  (0): AbsTensorTransformer()
  (1): ClampTensorTransformer(min=-1, max=2)
)
>>> out = transformer.transform(torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]]))
>>> out
tensor([[1., 2., 2.], [2., 2., 2.]])

startorch.tensor.transformer.Sigmoid

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the sigmoid of the input tensor.

This tensor transformer is equivalent to: output = sigmoid(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sigmoid
>>> transformer = Sigmoid()
>>> transformer
SigmoidTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 4.0, 16.0], [1.0, 2.0, 3.0]]))
>>> out
tensor([[0.5000, 0.9820, 1.0000], [0.7311, 0.8808, 0.9526]])

startorch.tensor.transformer.SigmoidTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the sigmoid of the input tensor.

This tensor transformer is equivalent to: output = sigmoid(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sigmoid
>>> transformer = Sigmoid()
>>> transformer
SigmoidTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 4.0, 16.0], [1.0, 2.0, 3.0]]))
>>> out
tensor([[0.5000, 0.9820, 1.0000], [0.7311, 0.8808, 0.9526]])

startorch.tensor.transformer.Sinc

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the normalized sinc of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sinc
>>> transformer = Sinc()
>>> transformer
SincTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 0.1, 0.2], [0.3, 0.4, 0.5]]))
>>> out
tensor([[1.0000, 0.9836, 0.9355], [0.8584, 0.7568, 0.6366]])

startorch.tensor.transformer.SincTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the normalized sinc of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sinc
>>> transformer = Sinc()
>>> transformer
SincTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 0.1, 0.2], [0.3, 0.4, 0.5]]))
>>> out
tensor([[1.0000, 0.9836, 0.9355], [0.8584, 0.7568, 0.6366]])

startorch.tensor.transformer.Sinh

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the hyperbolic sine (sinh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sinh
>>> transformer = Sinh()
>>> transformer
SinhTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 1.0, 2.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[  0.0000,   1.1752,   3.6269], [ 27.2899,  74.2032, 201.7132]])

startorch.tensor.transformer.SinhTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the hyperbolic sine (sinh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sinh
>>> transformer = Sinh()
>>> transformer
SinhTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 1.0, 2.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[  0.0000,   1.1752,   3.6269], [ 27.2899,  74.2032, 201.7132]])

startorch.tensor.transformer.Sqrt

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the square root of the input tensor.

This tensor transformer is equivalent to: output = sqrt(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sqrt
>>> transformer = Sqrt()
>>> transformer
SqrtTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 4.0, 16.0], [1.0, 2.0, 3.0]]))
>>> out
tensor([[0.0000, 2.0000, 4.0000], [1.0000, 1.4142, 1.7321]])

startorch.tensor.transformer.SqrtTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the square root of the input tensor.

This tensor transformer is equivalent to: output = sqrt(input)

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Sqrt
>>> transformer = Sqrt()
>>> transformer
SqrtTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 4.0, 16.0], [1.0, 2.0, 3.0]]))
>>> out
tensor([[0.0000, 2.0000, 4.0000], [1.0000, 1.4142, 1.7321]])

startorch.tensor.transformer.Tanh

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the hyperbolic tangent (tanh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Tanh
>>> transformer = Tanh()
>>> transformer
TanhTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 1.0, 2.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[0.0000, 0.7616, 0.9640], [0.9993, 0.9999, 1.0000]])

startorch.tensor.transformer.TanhTensorTransformer

Bases: BaseTensorTransformer

Implement a tensor transformer that computes the hyperbolic tangent (tanh) of each value.

Example usage:

>>> import torch
>>> from startorch.tensor.transformer import Tanh
>>> transformer = Tanh()
>>> transformer
TanhTensorTransformer()
>>> out = transformer.transform(torch.tensor([[0.0, 1.0, 2.0], [4.0, 5.0, 6.0]]))
>>> out
tensor([[0.0000, 0.7616, 0.9640], [0.9993, 0.9999, 1.0000]])

startorch.tensor.transformer.is_tensor_transformer_config

is_tensor_transformer_config(config: dict) -> bool

Indicate if the input configuration is a configuration for a BaseTensorTransformer.

This function only checks if the value of the key _target_ is valid. It does not check the other values. If _target_ indicates a function, the returned type hint is used to check the class.

Parameters:

Name Type Description Default
config dict

The configuration to check.

required

Returns:

Type Description
bool

True if the input configuration is a configuration for a BaseTensorTransformer object.

Example usage:

>>> from startorch.tensor.transformer import is_tensor_transformer_config
>>> is_tensor_transformer_config({"_target_": "startorch.tensor.transformer.Identity"})
True

startorch.tensor.transformer.setup_tensor_transformer

setup_tensor_transformer(
    transformer: BaseTensorTransformer | dict,
) -> BaseTensorTransformer

Set up a tensor transformer.

The tensor transformer is instantiated from its configuration by using the BaseTensorTransformer factory function.

Parameters:

Name Type Description Default
transformer BaseTensorTransformer | dict

A tensor transformer or its configuration.

required

Returns:

Type Description
BaseTensorTransformer

A tensor transformer.

Example usage:

>>> from startorch.tensor.transformer import setup_tensor_transformer
>>> setup_tensor_transformer({"_target_": "startorch.tensor.transformer.Identity"})
IdentityTensorTransformer(copy=True)