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 |
required |
max |
float | None
|
The upper bound. If |
required |
Raises:
Type | Description |
---|---|
ValueError
|
if both |
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 |
required |
max |
float | None
|
The upper bound. If |
required |
Raises:
Type | Description |
---|---|
ValueError
|
if both |
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
|
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
|
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
|
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
|
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
|
|
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)