sequence
startorch.sequence ¶
Contain sequence generators.
startorch.sequence.Abs ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the absolute value of a generated sequence.
Example usage:
>>> import torch
>>> from startorch.sequence import Abs, RandNormal
>>> generator = Abs(RandNormal())
>>> generator
AbsSequenceGenerator(
(sequence): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AbsSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the absolute value of a generated sequence.
Example usage:
>>> import torch
>>> from startorch.sequence import Abs, RandNormal
>>> generator = Abs(RandNormal())
>>> generator
AbsSequenceGenerator(
(sequence): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Acosh ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the inverse hyperbolic cosine (arccosh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Acosh, RandUniform
>>> generator = Acosh(RandUniform())
>>> generator
AcoshSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AcoshSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the inverse hyperbolic cosine (arccosh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Acosh, RandUniform
>>> generator = Acosh(RandUniform())
>>> generator
AcoshSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Add ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that adds multiple sequences.
sequence = sequence_1 + sequence_2 + ... + sequence_n
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequences |
Sequence[BaseSequenceGenerator | dict]
|
The sequence generators or their configuration. |
required |
Raises:
Type | Description |
---|---|
ValueError
|
if no sequence generator is provided. |
Example usage:
>>> import torch
>>> from startorch.sequence import Add, RandUniform, RandNormal
>>> generator = Add([RandUniform(), RandNormal()])
>>> generator
AddSequenceGenerator(
(0): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(1): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AddScalar ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that adds a scalar value to a generated batch of sequences.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
value |
float
|
The scalar value to add. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import AddScalar, RandUniform, RandNormal
>>> generator = AddScalar(RandUniform(), 42.0)
>>> generator
AddScalarSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(value): 42.0
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AddScalarSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that adds a scalar value to a generated batch of sequences.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
value |
float
|
The scalar value to add. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import AddScalar, RandUniform, RandNormal
>>> generator = AddScalar(RandUniform(), 42.0)
>>> generator
AddScalarSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(value): 42.0
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AddSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that adds multiple sequences.
sequence = sequence_1 + sequence_2 + ... + sequence_n
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequences |
Sequence[BaseSequenceGenerator | dict]
|
The sequence generators or their configuration. |
required |
Raises:
Type | Description |
---|---|
ValueError
|
if no sequence generator is provided. |
Example usage:
>>> import torch
>>> from startorch.sequence import Add, RandUniform, RandNormal
>>> generator = Add([RandUniform(), RandNormal()])
>>> generator
AddSequenceGenerator(
(0): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(1): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Arange ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence of consecutive integer
values between 0
and seq_len-1
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Example usage:
>>> from startorch.sequence import Arange
>>> generator = Arange(feature_size=())
>>> generator
ArangeSequenceGenerator(feature_size=())
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5]])
startorch.sequence.ArangeSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence of consecutive integer
values between 0
and seq_len-1
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Example usage:
>>> from startorch.sequence import Arange
>>> generator = Arange(feature_size=())
>>> generator
ArangeSequenceGenerator(feature_size=())
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5]])
startorch.sequence.Asinh ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the inverse hyperbolic sine (arcsinh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Asinh, RandUniform
>>> generator = Asinh(RandUniform())
>>> generator
AsinhSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AsinhSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the inverse hyperbolic sine (arcsinh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Asinh, RandUniform
>>> generator = Asinh(RandUniform())
>>> generator
AsinhSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AsinhUniform ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from an asinh-uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (inclusive). |
required |
high |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (exclusive). |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import AsinhUniform, RandUniform
>>> generator = AsinhUniform(low=RandUniform(-1.0, 0.0), high=RandUniform(0.0, 1.0))
>>> generator
AsinhUniformSequenceGenerator(
(low): RandUniformSequenceGenerator(low=-1.0, high=0.0, feature_size=(1,))
(high): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AsinhUniformSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from an asinh-uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (inclusive). |
required |
high |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (exclusive). |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import AsinhUniform, RandUniform
>>> generator = AsinhUniform(low=RandUniform(-1.0, 0.0), high=RandUniform(0.0, 1.0))
>>> generator
AsinhUniformSequenceGenerator(
(low): RandUniformSequenceGenerator(low=-1.0, high=0.0, feature_size=(1,))
(high): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Atanh ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the inverse hyperbolic tangent (arctanh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Atanh, RandUniform
>>> generator = Atanh(RandUniform())
>>> generator
AtanhSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AtanhSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the inverse hyperbolic tangent (arctanh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Atanh, RandUniform
>>> generator = Atanh(RandUniform())
>>> generator
AtanhSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AutoRegressive ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from an autoregressive process.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) used to generate the initial sequence values. These values are used to start the AR. |
required |
coefficient |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) used to generate the coefficients. |
required |
noise |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) used to generate the noise values. |
required |
order |
BaseTensorGenerator | dict
|
A tensor generator (or its configuration) used to generate the order of the AR. |
required |
max_abs_value |
float
|
The maximum absolute value.
This argument ensures the values stay in the range
|
required |
warmup |
int
|
The number of cycles used to initiate the AR. The initial value sampled do not follow an AR, so using warmup allows to initialize the AR so each value follows an AR. |
10
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import AutoRegressive, RandUniform, RandNormal, Full
>>> from startorch.tensor import RandInt
>>> generator = AutoRegressive(
... value=RandNormal(),
... coefficient=RandUniform(low=-1.0, high=1.0),
... noise=Full(0.0),
... order=RandInt(low=1, high=6),
... max_abs_value=100.0,
... )
>>> generator
AutoRegressiveSequenceGenerator(
(value): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
(coefficient): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(noise): FullSequenceGenerator(value=0.0, feature_size=(1,))
(order): RandIntTensorGenerator(low=1, high=6)
(max_abs_value): 100.0
(warmup): 10
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.AutoRegressiveSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from an autoregressive process.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) used to generate the initial sequence values. These values are used to start the AR. |
required |
coefficient |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) used to generate the coefficients. |
required |
noise |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) used to generate the noise values. |
required |
order |
BaseTensorGenerator | dict
|
A tensor generator (or its configuration) used to generate the order of the AR. |
required |
max_abs_value |
float
|
The maximum absolute value.
This argument ensures the values stay in the range
|
required |
warmup |
int
|
The number of cycles used to initiate the AR. The initial value sampled do not follow an AR, so using warmup allows to initialize the AR so each value follows an AR. |
10
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import AutoRegressive, RandUniform, RandNormal, Full
>>> from startorch.tensor import RandInt
>>> generator = AutoRegressive(
... value=RandNormal(),
... coefficient=RandUniform(low=-1.0, high=1.0),
... noise=Full(0.0),
... order=RandInt(low=1, high=6),
... max_abs_value=100.0,
... )
>>> generator
AutoRegressiveSequenceGenerator(
(value): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
(coefficient): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(noise): FullSequenceGenerator(value=0.0, feature_size=(1,))
(order): RandIntTensorGenerator(low=1, high=6)
(max_abs_value): 100.0
(warmup): 10
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.BaseSequenceGenerator ¶
Bases: ABC
Define the base class to generate sequences.
A child class has to implement the generate
method.
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform
>>> generator = RandUniform()
>>> generator
RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.BaseSequenceGenerator.generate
abstractmethod
¶
generate(
seq_len: int,
batch_size: int = 1,
rng: Generator | None = None,
) -> Tensor
Generate a batch of sequences.
All the sequences in the batch must have the same length.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
seq_len |
int
|
The sequence length. |
required |
batch_size |
int
|
The batch size. |
1
|
rng |
Generator | None
|
An optional random number generator. |
None
|
Returns:
Type | Description |
---|---|
Tensor
|
A batch of sequences. The data in the batch are
represented as a |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform
>>> generator = RandUniform()
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.BaseWrapperSequenceGenerator ¶
Bases: BaseSequenceGenerator
Define a base class to easily wrap a sequence generator.
Note
It is possible to wrap a sequence generator into another sequence generator without using this base class. This class makes it more convenient and reduce duplicate code.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
startorch.sequence.Cat2 ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that concatenate two sequences along the sequence dimension.
ouput = [sequence1, sequence2]
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator1 |
BaseSequenceGenerator | dict
|
The first sequence generator or its configuration. |
required |
generator2 |
BaseSequenceGenerator | dict
|
The second sequence generator or its configuration. |
required |
changepoint |
BaseTensorGenerator | dict
|
The change point generator or its configuration. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import Cat2, RandUniform, RandNormal
>>> from startorch.tensor import RandInt
>>> generator = Cat2(
... generator1=RandUniform(), generator2=RandNormal(), changepoint=RandInt(0, 12)
... )
>>> generator
Cat2SequenceGenerator(
(generator1): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(generator2): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
(changepoint): RandIntTensorGenerator(low=0, high=12)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Cat2SequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that concatenate two sequences along the sequence dimension.
ouput = [sequence1, sequence2]
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator1 |
BaseSequenceGenerator | dict
|
The first sequence generator or its configuration. |
required |
generator2 |
BaseSequenceGenerator | dict
|
The second sequence generator or its configuration. |
required |
changepoint |
BaseTensorGenerator | dict
|
The change point generator or its configuration. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import Cat2, RandUniform, RandNormal
>>> from startorch.tensor import RandInt
>>> generator = Cat2(
... generator1=RandUniform(), generator2=RandNormal(), changepoint=RandInt(0, 12)
... )
>>> generator
Cat2SequenceGenerator(
(generator1): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(generator2): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
(changepoint): RandIntTensorGenerator(low=0, high=12)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Cauchy ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loc |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the location. |
required |
scale |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the scale. |
required |
Example usage:
>>> from startorch.sequence import Cauchy, RandUniform
>>> generator = Cauchy(
... loc=RandUniform(low=-1.0, high=1.0),
... scale=RandUniform(low=1.0, high=2.0),
... )
>>> generator
CauchySequenceGenerator(
(loc): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(scale): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.CauchySequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loc |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the location. |
required |
scale |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the scale. |
required |
Example usage:
>>> from startorch.sequence import Cauchy, RandUniform
>>> generator = Cauchy(
... loc=RandUniform(low=-1.0, high=1.0),
... scale=RandUniform(low=1.0, high=2.0),
... )
>>> generator
CauchySequenceGenerator(
(loc): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(scale): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Clamp ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator to generate a batch of sequences where the values are clamped.
Note: min_value
and max_value
cannot be both None
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
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.sequence import Clamp, RandNormal
>>> generator = Clamp(RandNormal(), -1.0, 1.0)
>>> generator
ClampSequenceGenerator(
(sequence): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
(min): -1.0
(max): 1.0
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.ClampSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator to generate a batch of sequences where the values are clamped.
Note: min_value
and max_value
cannot be both None
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
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.sequence import Clamp, RandNormal
>>> generator = Clamp(RandNormal(), -1.0, 1.0)
>>> generator
ClampSequenceGenerator(
(sequence): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
(min): -1.0
(max): 1.0
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Constant ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator to generate a batch of sequences with constant values where the values for each sequence are sampled from another sequence generator.
Example usage:
>>> from startorch.sequence import Constant, RandUniform
>>> generator = Constant(RandUniform())
>>> generator
ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.ConstantSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator to generate a batch of sequences with constant values where the values for each sequence are sampled from another sequence generator.
Example usage:
>>> from startorch.sequence import Constant, RandUniform
>>> generator = Constant(RandUniform())
>>> generator
ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Cosh ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the hyperbolic cosine (cosh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Cosh, RandUniform
>>> generator = Cosh(RandUniform())
>>> generator
CoshSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.CoshSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the hyperbolic cosine (cosh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Cosh, RandUniform
>>> generator = Cosh(RandUniform())
>>> generator
CoshSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Cumsum ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the cumulative sum of a generated sequence.
Example usage:
>>> import torch
>>> from startorch.sequence import Cumsum, RandUniform
>>> generator = Cumsum(RandUniform())
>>> generator
CumsumSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.CumsumSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the cumulative sum of a generated sequence.
Example usage:
>>> import torch
>>> from startorch.sequence import Cumsum, RandUniform
>>> generator = Cumsum(RandUniform())
>>> generator
CumsumSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Div ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that divides one sequence by another one.
sequence = dividend / divisor
(a.k.a. true division)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dividend |
BaseSequenceGenerator | dict
|
The dividend sequence generator or its configuration. |
required |
divisor |
BaseSequenceGenerator | dict
|
The divisor sequence generator or its configuration. |
required |
rounding_mode |
str | None
|
The type of rounding applied to the
result:
- |
None
|
Example usage:
>>> import torch
>>> from startorch.sequence import Div, RandUniform, RandNormal
>>> generator = Div(RandNormal(), RandUniform(1.0, 10.0))
>>> generator
DivSequenceGenerator(
(dividend): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
(divisor): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
(rounding_mode): None
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.DivSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that divides one sequence by another one.
sequence = dividend / divisor
(a.k.a. true division)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dividend |
BaseSequenceGenerator | dict
|
The dividend sequence generator or its configuration. |
required |
divisor |
BaseSequenceGenerator | dict
|
The divisor sequence generator or its configuration. |
required |
rounding_mode |
str | None
|
The type of rounding applied to the
result:
- |
None
|
Example usage:
>>> import torch
>>> from startorch.sequence import Div, RandUniform, RandNormal
>>> generator = Div(RandNormal(), RandUniform(1.0, 10.0))
>>> generator
DivSequenceGenerator(
(dividend): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
(divisor): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
(rounding_mode): None
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Exp ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the exponential of a batch of sequences.
Example usage:
>>> import torch
>>> from startorch.sequence import Exp, RandUniform, RandNormal
>>> generator = Exp(RandUniform())
>>> generator
ExpSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.ExpSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the exponential of a batch of sequences.
Example usage:
>>> import torch
>>> from startorch.sequence import Exp, RandUniform, RandNormal
>>> generator = Exp(RandUniform())
>>> generator
ExpSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Exponential ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from an Exponential distribution.
The rates of the Exponential distribution are generated by the rate generator. The rate generator should return the rate for each value in the sequence.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
BaseSequenceGenerator | dict
|
The rate generator or its configuration. The rate generator should return valid rate values. |
required |
Example usage:
>>> from startorch.sequence import Exponential, RandUniform
>>> generator = Exponential(rate=RandUniform(low=1.0, high=10.0))
>>> generator
ExponentialSequenceGenerator(
(rate): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Exponential.create_fixed_rate
classmethod
¶
create_fixed_rate(
rate: float = 1.0,
feature_size: tuple[int, ...] | list[int] | int = 1,
) -> ExponentialSequenceGenerator
Implement a sequence generator where the values are sampled from an Exponential distribution with a fixed rate.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Exponential distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Returns:
Type | Description |
---|---|
ExponentialSequenceGenerator
|
A sequence generator where the rates of the Exponential distribution are a fixed given value. |
Example usage:
>>> from startorch.sequence import Exponential, RandUniform
>>> generator = Exponential.create_fixed_rate(rate=1.0)
>>> generator
ExponentialSequenceGenerator(
(rate): FullSequenceGenerator(value=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Exponential.create_uniform_rate
classmethod
¶
create_uniform_rate(
min_rate: float = 0.01,
max_rate: float = 1.0,
feature_size: tuple[int, ...] | list[int] | int = 1,
) -> ExponentialSequenceGenerator
Implement a sequence generator where the rates of the Exponential distribution are sampled from a uniform distribution.
One rate is sampled per sequence.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_rate |
float
|
The minimum rate value. |
0.01
|
max_rate |
float
|
The maximum rate value. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Returns:
Type | Description |
---|---|
ExponentialSequenceGenerator
|
A sequence generator where the rates for each sequence are sampled from a uniform distribution. |
Example usage:
>>> from startorch.sequence import Exponential, RandUniform
>>> generator = Exponential.create_uniform_rate(min_rate=0.1, max_rate=1.0)
>>> generator
ExponentialSequenceGenerator(
(rate): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.1, high=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.ExponentialSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from an Exponential distribution.
The rates of the Exponential distribution are generated by the rate generator. The rate generator should return the rate for each value in the sequence.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
BaseSequenceGenerator | dict
|
The rate generator or its configuration. The rate generator should return valid rate values. |
required |
Example usage:
>>> from startorch.sequence import Exponential, RandUniform
>>> generator = Exponential(rate=RandUniform(low=1.0, high=10.0))
>>> generator
ExponentialSequenceGenerator(
(rate): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.ExponentialSequenceGenerator.create_fixed_rate
classmethod
¶
create_fixed_rate(
rate: float = 1.0,
feature_size: tuple[int, ...] | list[int] | int = 1,
) -> ExponentialSequenceGenerator
Implement a sequence generator where the values are sampled from an Exponential distribution with a fixed rate.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Exponential distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Returns:
Type | Description |
---|---|
ExponentialSequenceGenerator
|
A sequence generator where the rates of the Exponential distribution are a fixed given value. |
Example usage:
>>> from startorch.sequence import Exponential, RandUniform
>>> generator = Exponential.create_fixed_rate(rate=1.0)
>>> generator
ExponentialSequenceGenerator(
(rate): FullSequenceGenerator(value=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.ExponentialSequenceGenerator.create_uniform_rate
classmethod
¶
create_uniform_rate(
min_rate: float = 0.01,
max_rate: float = 1.0,
feature_size: tuple[int, ...] | list[int] | int = 1,
) -> ExponentialSequenceGenerator
Implement a sequence generator where the rates of the Exponential distribution are sampled from a uniform distribution.
One rate is sampled per sequence.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_rate |
float
|
The minimum rate value. |
0.01
|
max_rate |
float
|
The maximum rate value. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Returns:
Type | Description |
---|---|
ExponentialSequenceGenerator
|
A sequence generator where the rates for each sequence are sampled from a uniform distribution. |
Example usage:
>>> from startorch.sequence import Exponential, RandUniform
>>> generator = Exponential.create_uniform_rate(min_rate=0.1, max_rate=1.0)
>>> generator
ExponentialSequenceGenerator(
(rate): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.1, high=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Float ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that converts a batch of sequences to float type.
Example usage:
>>> from startorch.sequence import Float, RandInt
>>> generator = Float(RandInt(low=0, high=10))
>>> generator
FloatSequenceGenerator(
(sequence): RandIntSequenceGenerator(low=0, high=10, feature_size=())
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.FloatSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that converts a batch of sequences to float type.
Example usage:
>>> from startorch.sequence import Float, RandInt
>>> generator = Float(RandInt(low=0, high=10))
>>> generator
FloatSequenceGenerator(
(sequence): RandIntSequenceGenerator(low=0, high=10, feature_size=())
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Fmod ¶
Bases: BaseSequenceGenerator
Implement a tensor generator that computes the element-wise remainder of division.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dividend |
BaseSequenceGenerator | dict
|
The sequence generator (or its configuration) that generates the dividend values. |
required |
divisor |
BaseSequenceGenerator | dict | float
|
The divisor. |
required |
Example usage:
>>> from startorch.sequence import Fmod, RandUniform
>>> generator = Fmod(dividend=RandUniform(low=-100, high=100), divisor=10.0)
>>> generator
FmodSequenceGenerator(
(dividend): RandUniformSequenceGenerator(low=-100.0, high=100.0, feature_size=(1,))
(divisor): 10.0
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
>>> generator = Fmod(
... dividend=RandUniform(low=-100, high=100), divisor=RandUniform(low=1, high=10)
... )
>>> generator
FmodSequenceGenerator(
(dividend): RandUniformSequenceGenerator(low=-100.0, high=100.0, feature_size=(1,))
(divisor): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.FmodSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a tensor generator that computes the element-wise remainder of division.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dividend |
BaseSequenceGenerator | dict
|
The sequence generator (or its configuration) that generates the dividend values. |
required |
divisor |
BaseSequenceGenerator | dict | float
|
The divisor. |
required |
Example usage:
>>> from startorch.sequence import Fmod, RandUniform
>>> generator = Fmod(dividend=RandUniform(low=-100, high=100), divisor=10.0)
>>> generator
FmodSequenceGenerator(
(dividend): RandUniformSequenceGenerator(low=-100.0, high=100.0, feature_size=(1,))
(divisor): 10.0
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
>>> generator = Fmod(
... dividend=RandUniform(low=-100, high=100), divisor=RandUniform(low=1, high=10)
... )
>>> generator
FmodSequenceGenerator(
(dividend): RandUniformSequenceGenerator(low=-100.0, high=100.0, feature_size=(1,))
(divisor): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Full ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences filled with a given value.
This sequence generator is fully deterministic and the random seed has no effect.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
float
|
The value. |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Example usage:
>>> from startorch.sequence import Full
>>> generator = Full(42.0)
>>> generator
FullSequenceGenerator(value=42.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[[42.],
[42.],
[42.],
[42.],
[42.],
[42.]],
[[42.],
[42.],
[42.],
[42.],
[42.],
[42.]]])
>>> generator = Full(42, feature_size=())
>>> generator
FullSequenceGenerator(value=42, feature_size=())
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[42, 42, 42, 42, 42, 42],
[42, 42, 42, 42, 42, 42]])
startorch.sequence.FullSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences filled with a given value.
This sequence generator is fully deterministic and the random seed has no effect.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
float
|
The value. |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Example usage:
>>> from startorch.sequence import Full
>>> generator = Full(42.0)
>>> generator
FullSequenceGenerator(value=42.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[[42.],
[42.],
[42.],
[42.],
[42.],
[42.]],
[[42.],
[42.],
[42.],
[42.],
[42.],
[42.]]])
>>> generator = Full(42, feature_size=())
>>> generator
FullSequenceGenerator(value=42, feature_size=())
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[42, 42, 42, 42, 42, 42],
[42, 42, 42, 42, 42, 42]])
startorch.sequence.HalfCauchy ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
scale |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the scale. |
required |
Example usage:
>>> from startorch.sequence import HalfCauchy, RandUniform
>>> generator = HalfCauchy(scale=RandUniform(low=1.0, high=2.0))
>>> generator
HalfCauchySequenceGenerator(
(scale): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.HalfCauchySequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
scale |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the scale. |
required |
Example usage:
>>> from startorch.sequence import HalfCauchy, RandUniform
>>> generator = HalfCauchy(scale=RandUniform(low=1.0, high=2.0))
>>> generator
HalfCauchySequenceGenerator(
(scale): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.HalfNormal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation. |
required |
Example usage:
>>> from startorch.sequence import HalfNormal, RandUniform
>>> generator = HalfNormal(std=RandUniform(low=1.0, high=2.0))
>>> generator
HalfNormalSequenceGenerator(
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.HalfNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation. |
required |
Example usage:
>>> from startorch.sequence import HalfNormal, RandUniform
>>> generator = HalfNormal(std=RandUniform(low=1.0, high=2.0))
>>> generator
HalfNormalSequenceGenerator(
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Linear ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values with a linear pattern.
The sequences are generated by using the following formula:
output = slope * value + intercept
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the sequence values. The linear transformation is applied on these values. |
required |
slope |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the slope values. |
required |
intercept |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the intercept values. |
required |
Example usage:
>>> from startorch.sequence import Linear, RandUniform
>>> generator = Linear(
... value=RandUniform(low=-1.0, high=1.0),
... slope=RandUniform(low=1.0, high=2.0),
... intercept=RandUniform(low=-10.0, high=-5.0),
... )
>>> generator
LinearSequenceGenerator(
(value): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(slope): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(intercept): RandUniformSequenceGenerator(low=-10.0, high=-5.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.LinearSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values with a linear pattern.
The sequences are generated by using the following formula:
output = slope * value + intercept
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the sequence values. The linear transformation is applied on these values. |
required |
slope |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the slope values. |
required |
intercept |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the intercept values. |
required |
Example usage:
>>> from startorch.sequence import Linear, RandUniform
>>> generator = Linear(
... value=RandUniform(low=-1.0, high=1.0),
... slope=RandUniform(low=1.0, high=2.0),
... intercept=RandUniform(low=-10.0, high=-5.0),
... )
>>> generator
LinearSequenceGenerator(
(value): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(slope): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(intercept): RandUniformSequenceGenerator(low=-10.0, high=-5.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Log ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the logarithm of a batch of sequences.
Example usage:
>>> import torch
>>> from startorch.sequence import Log, RandUniform, RandNormal
>>> generator = Log(RandUniform(1.0, 10.0))
>>> generator
LogSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.LogNormal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a log-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the mean of the underlying Normal distribution. |
required |
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation of the underlying Normal distribution. |
required |
Example usage:
>>> from startorch.sequence import LogNormal, RandUniform
>>> generator = LogNormal(
... mean=RandUniform(low=-1.0, high=1.0), std=RandUniform(low=1.0, high=2.0)
... )
>>> generator
LogNormalSequenceGenerator(
(mean): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.LogNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a log-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the mean of the underlying Normal distribution. |
required |
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation of the underlying Normal distribution. |
required |
Example usage:
>>> from startorch.sequence import LogNormal, RandUniform
>>> generator = LogNormal(
... mean=RandUniform(low=-1.0, high=1.0), std=RandUniform(low=1.0, high=2.0)
... )
>>> generator
LogNormalSequenceGenerator(
(mean): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.LogSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the logarithm of a batch of sequences.
Example usage:
>>> import torch
>>> from startorch.sequence import Log, RandUniform, RandNormal
>>> generator = Log(RandUniform(1.0, 10.0))
>>> generator
LogSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.LogUniform ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from a log-uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (inclusive). |
required |
high |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (exclusive). |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import LogUniform, RandUniform
>>> generator = LogUniform(low=RandUniform(0.0, 1.0), high=RandUniform(5.0, 10.0))
>>> generator
LogUniformSequenceGenerator(
(low): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(high): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.LogUniformSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from a log-uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (inclusive). |
required |
high |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (exclusive). |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import LogUniform, RandUniform
>>> generator = LogUniform(low=RandUniform(0.0, 1.0), high=RandUniform(5.0, 10.0))
>>> generator
LogUniformSequenceGenerator(
(low): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(high): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Long ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that converts a batch of sequences to long type.
Example usage:
>>> from startorch.sequence import Long, RandUniform
>>> generator = Long(RandUniform(low=0, high=10))
>>> generator
LongSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.LongSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that converts a batch of sequences to long type.
Example usage:
>>> from startorch.sequence import Long, RandUniform
>>> generator = Long(RandUniform(low=0, high=10))
>>> generator
LongSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.MarkovChain ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate a batch of sequences where the data are generated by using a Markov chain/process.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
transition |
Tensor
|
The transition matrix of the Markov chain. |
required |
init |
Tensor | None
|
The initial probabilities. If |
None
|
Example usage:
>>> import torch
>>> from startorch.sequence import MarkovChain
>>> generator = MarkovChain(transition=torch.rand(5, 5))
>>> generator
MarkovChainSequenceGenerator(transition=(5, 5), init=None)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.MarkovChain.create_from_generators
classmethod
¶
create_from_generators(
n: int,
transition: BaseTransitionGenerator | dict,
init: BaseTensorGenerator | dict | None = None,
rng: Generator | None = None,
) -> MarkovChainSequenceGenerator
Create the Markov chain sequence generator where the transition matrix and initial probabilities are generated from generators.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
n |
int
|
The number of states in the Markov chain i.e. the size of the transition matrix. |
required |
transition |
BaseTransitionGenerator | dict
|
The transition matrix generator or its configuration. |
required |
init |
BaseTensorGenerator | dict | None
|
The initial probabilities generator or its configuration. |
None
|
rng |
Generator | None
|
An optional random number generator. |
None
|
Returns:
Type | Description |
---|---|
MarkovChainSequenceGenerator
|
The instantiated Markov chain sequence generator. |
Example usage:
>>> import torch
>>> from startorch.sequence import MarkovChain
>>> generator = MarkovChain.create_from_generators(
... n=6,
... transition={'_target_': 'startorch.transition.Diagonal'},
... init={'_target_': 'startorch.tensor.RandUniform'},
... )
>>> generator
MarkovChainSequenceGenerator(transition=(6, 6), init=(6,))
startorch.sequence.MarkovChainSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate a batch of sequences where the data are generated by using a Markov chain/process.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
transition |
Tensor
|
The transition matrix of the Markov chain. |
required |
init |
Tensor | None
|
The initial probabilities. If |
None
|
Example usage:
>>> import torch
>>> from startorch.sequence import MarkovChain
>>> generator = MarkovChain(transition=torch.rand(5, 5))
>>> generator
MarkovChainSequenceGenerator(transition=(5, 5), init=None)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.MarkovChainSequenceGenerator.create_from_generators
classmethod
¶
create_from_generators(
n: int,
transition: BaseTransitionGenerator | dict,
init: BaseTensorGenerator | dict | None = None,
rng: Generator | None = None,
) -> MarkovChainSequenceGenerator
Create the Markov chain sequence generator where the transition matrix and initial probabilities are generated from generators.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
n |
int
|
The number of states in the Markov chain i.e. the size of the transition matrix. |
required |
transition |
BaseTransitionGenerator | dict
|
The transition matrix generator or its configuration. |
required |
init |
BaseTensorGenerator | dict | None
|
The initial probabilities generator or its configuration. |
None
|
rng |
Generator | None
|
An optional random number generator. |
None
|
Returns:
Type | Description |
---|---|
MarkovChainSequenceGenerator
|
The instantiated Markov chain sequence generator. |
Example usage:
>>> import torch
>>> from startorch.sequence import MarkovChain
>>> generator = MarkovChain.create_from_generators(
... n=6,
... transition={'_target_': 'startorch.transition.Diagonal'},
... init={'_target_': 'startorch.tensor.RandUniform'},
... )
>>> generator
MarkovChainSequenceGenerator(transition=(6, 6), init=(6,))
startorch.sequence.Mul ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that multiplies multiple sequences.
sequence = sequence_1 * sequence_2 * ... * sequence_n
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequences |
Sequence[BaseSequenceGenerator | dict]
|
The sequence generators. |
required |
Raises:
Type | Description |
---|---|
ValueError
|
if no sequence generator is provided. |
Example usage:
>>> import torch
>>> from startorch.sequence import Mul, RandUniform, RandNormal
>>> generator = Mul([RandUniform(), RandNormal()])
>>> generator
MulSequenceGenerator(
(0): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(1): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.MulScalar ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that multiplies a scalar value to a generated batch of sequences.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
value |
float
|
The scalar value to multiply. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import MulScalar, RandUniform, RandNormal
>>> generator = MulScalar(RandUniform(), 2.0)
>>> generator
MulScalarSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(value): 2.0
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.MulScalarSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that multiplies a scalar value to a generated batch of sequences.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
value |
float
|
The scalar value to multiply. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import MulScalar, RandUniform, RandNormal
>>> generator = MulScalar(RandUniform(), 2.0)
>>> generator
MulScalarSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(value): 2.0
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.MulSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that multiplies multiple sequences.
sequence = sequence_1 * sequence_2 * ... * sequence_n
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequences |
Sequence[BaseSequenceGenerator | dict]
|
The sequence generators. |
required |
Raises:
Type | Description |
---|---|
ValueError
|
if no sequence generator is provided. |
Example usage:
>>> import torch
>>> from startorch.sequence import Mul, RandUniform, RandNormal
>>> generator = Mul([RandUniform(), RandNormal()])
>>> generator
MulSequenceGenerator(
(0): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(1): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Multinomial ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences of categorical variables where each value is sampled from a multinomial distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
weights |
Tensor | Sequence[float]
|
The vector of weights associated at each category.
The weights have to be positive but do not need to sum
to 1. The input is expected to be a |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Example usage:
>>> import torch
>>> from startorch.sequence import Multinomial
>>> generator = Multinomial(weights=torch.ones(5))
>>> generator
MultinomialSequenceGenerator(num_categories=5, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Multinomial.create_exp_weights
classmethod
¶
create_exp_weights(
num_categories: int, scale: float = 0.1
) -> MultinomialSequenceGenerator
Instantiate the weights with an exponential pattern.
The weight of the i
-th category (w_i
) is generated with
the rule: w_i = exp(-scale * i)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_categories |
int
|
The number of categories. |
required |
scale |
float
|
The scale parameter that controls the exponential function. |
0.1
|
Returns:
Type | Description |
---|---|
MultinomialSequenceGenerator
|
A sequence generator where the weights of the multinomial distribution follow an exponential pattern. |
startorch.sequence.Multinomial.create_linear_weights
classmethod
¶
create_linear_weights(
num_categories: int,
) -> MultinomialSequenceGenerator
Instantiate the weights with a linear pattern.
The weight of the i
-th category (w_i
) is generated
with the rule: w_i = num_categories - i
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_categories |
int
|
The number of categories. |
required |
Returns:
Type | Description |
---|---|
MultinomialSequenceGenerator
|
A sequence generator where the weights of the multinomial distribution follow a linear pattern. |
startorch.sequence.Multinomial.create_uniform_weights
classmethod
¶
create_uniform_weights(
num_categories: int,
) -> MultinomialSequenceGenerator
Instantiate the weights with a uniform pattern.
All the categories have the same probability.
The weight of the i
-th category (w_i
) is generated
with the rule: w_i = 1
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_categories |
int
|
The number of categories. |
required |
Returns:
Type | Description |
---|---|
MultinomialSequenceGenerator
|
A sequence generator where the weights of the multinomial distribution follow a uniform pattern. |
startorch.sequence.MultinomialChoice ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that select a sequence generator at each batch.
This sequence generator is used to generate sequences with different
generation processes. The user can specify a list of sequence
generators with an associated weight. The weight is used to sample
the sequence generator with a multinomial distribution. Higher
weight means that the sequence generator has a higher probability
to be selected at each batch. Each dictionary in the
generators
input should have the following items:
- a key ``'generator'`` which indicates the sequence generator
or its configuration.
- an optional key ``'weight'`` with a float value which
indicates the weight of the sequence generator.
If this key is absent, the weight is set to ``1.0``.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequences |
Sequence[dict[str, BaseSequenceGenerator | dict]]
|
The sequence generators and their weights. See above to learn about the expected format. |
required |
Example usage:
>>> from startorch.sequence import MultinomialChoice, RandUniform, RandNormal
>>> generator = MultinomialChoice(
... (
... {"weight": 2.0, "generator": RandUniform()},
... {"weight": 1.0, "generator": RandNormal()},
... )
... )
>>> generator.generate(seq_len=10, batch_size=2)
tensor([[...]])
startorch.sequence.MultinomialChoiceSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that select a sequence generator at each batch.
This sequence generator is used to generate sequences with different
generation processes. The user can specify a list of sequence
generators with an associated weight. The weight is used to sample
the sequence generator with a multinomial distribution. Higher
weight means that the sequence generator has a higher probability
to be selected at each batch. Each dictionary in the
generators
input should have the following items:
- a key ``'generator'`` which indicates the sequence generator
or its configuration.
- an optional key ``'weight'`` with a float value which
indicates the weight of the sequence generator.
If this key is absent, the weight is set to ``1.0``.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequences |
Sequence[dict[str, BaseSequenceGenerator | dict]]
|
The sequence generators and their weights. See above to learn about the expected format. |
required |
Example usage:
>>> from startorch.sequence import MultinomialChoice, RandUniform, RandNormal
>>> generator = MultinomialChoice(
... (
... {"weight": 2.0, "generator": RandUniform()},
... {"weight": 1.0, "generator": RandNormal()},
... )
... )
>>> generator.generate(seq_len=10, batch_size=2)
tensor([[...]])
startorch.sequence.MultinomialSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences of categorical variables where each value is sampled from a multinomial distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
weights |
Tensor | Sequence[float]
|
The vector of weights associated at each category.
The weights have to be positive but do not need to sum
to 1. The input is expected to be a |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Example usage:
>>> import torch
>>> from startorch.sequence import Multinomial
>>> generator = Multinomial(weights=torch.ones(5))
>>> generator
MultinomialSequenceGenerator(num_categories=5, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.MultinomialSequenceGenerator.create_exp_weights
classmethod
¶
create_exp_weights(
num_categories: int, scale: float = 0.1
) -> MultinomialSequenceGenerator
Instantiate the weights with an exponential pattern.
The weight of the i
-th category (w_i
) is generated with
the rule: w_i = exp(-scale * i)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_categories |
int
|
The number of categories. |
required |
scale |
float
|
The scale parameter that controls the exponential function. |
0.1
|
Returns:
Type | Description |
---|---|
MultinomialSequenceGenerator
|
A sequence generator where the weights of the multinomial distribution follow an exponential pattern. |
startorch.sequence.MultinomialSequenceGenerator.create_linear_weights
classmethod
¶
create_linear_weights(
num_categories: int,
) -> MultinomialSequenceGenerator
Instantiate the weights with a linear pattern.
The weight of the i
-th category (w_i
) is generated
with the rule: w_i = num_categories - i
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_categories |
int
|
The number of categories. |
required |
Returns:
Type | Description |
---|---|
MultinomialSequenceGenerator
|
A sequence generator where the weights of the multinomial distribution follow a linear pattern. |
startorch.sequence.MultinomialSequenceGenerator.create_uniform_weights
classmethod
¶
create_uniform_weights(
num_categories: int,
) -> MultinomialSequenceGenerator
Instantiate the weights with a uniform pattern.
All the categories have the same probability.
The weight of the i
-th category (w_i
) is generated
with the rule: w_i = 1
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_categories |
int
|
The number of categories. |
required |
Returns:
Type | Description |
---|---|
MultinomialSequenceGenerator
|
A sequence generator where the weights of the multinomial distribution follow a uniform pattern. |
startorch.sequence.Neg ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the negation of a generated sequence.
Example usage:
>>> import torch
>>> from startorch.sequence import Neg, RandUniform, RandNormal
>>> generator = Neg(RandUniform())
>>> generator
NegSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.NegSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the negation of a generated sequence.
Example usage:
>>> import torch
>>> from startorch.sequence import Neg, RandUniform, RandNormal
>>> generator = Neg(RandUniform())
>>> generator
NegSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Normal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the mean. |
required |
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation. |
required |
Example usage:
>>> from startorch.sequence import Normal, RandUniform
>>> generator = Normal(
... mean=RandUniform(low=-1.0, high=1.0), std=RandUniform(low=1.0, high=2.0)
... )
>>> generator
NormalSequenceGenerator(
(mean): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.NormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the mean. |
required |
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation. |
required |
Example usage:
>>> from startorch.sequence import Normal, RandUniform
>>> generator = Normal(
... mean=RandUniform(low=-1.0, high=1.0), std=RandUniform(low=1.0, high=2.0)
... )
>>> generator
NormalSequenceGenerator(
(mean): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Periodic ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate periodic sequence from a regular sequence generator.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequence |
BaseSequenceGenerator | BasePeriodicSequenceGenerator | dict
|
A sequence generator or its configuration that is used to generate the periodic pattern. |
required |
period |
BaseTensorGenerator | dict
|
The period length sampler or its configuration. This sampler is used to sample the period length at each batch. |
required |
Example usage:
>>> from startorch.sequence import Periodic, RandUniform
>>> from startorch.tensor import RandInt
>>> generator = Periodic(sequence=RandUniform(), period=RandInt(2, 5))
>>> generator
PeriodicSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(period): RandIntTensorGenerator(low=2, high=5)
)
>>> generator.generate(seq_len=10, batch_size=2)
tensor([[...]])
startorch.sequence.PeriodicSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate periodic sequence from a regular sequence generator.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequence |
BaseSequenceGenerator | BasePeriodicSequenceGenerator | dict
|
A sequence generator or its configuration that is used to generate the periodic pattern. |
required |
period |
BaseTensorGenerator | dict
|
The period length sampler or its configuration. This sampler is used to sample the period length at each batch. |
required |
Example usage:
>>> from startorch.sequence import Periodic, RandUniform
>>> from startorch.tensor import RandInt
>>> generator = Periodic(sequence=RandUniform(), period=RandInt(2, 5))
>>> generator
PeriodicSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(period): RandIntTensorGenerator(low=2, high=5)
)
>>> generator.generate(seq_len=10, batch_size=2)
tensor([[...]])
startorch.sequence.Poisson ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Poisson distribution.
The rates of the Poisson distribution are generated by the rate generator. The rate generator should return the rate for each value in the sequence. The rate values should be greater than 0.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
BaseSequenceGenerator | dict
|
The rate generator or its configuration. The rate generator should return valid rate values. |
required |
Example usage:
>>> from startorch.sequence import RandUniform, Poisson
>>> generator = Poisson(rate=RandUniform(low=1.0, high=2.0))
>>> generator
PoissonSequenceGenerator(
(rate): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Poisson.generate_uniform_rate
classmethod
¶
generate_uniform_rate(
min_rate: float = 0.01,
max_rate: float = 1.0,
feature_size: tuple[int, ...] | list[int] | int = 1,
) -> PoissonSequenceGenerator
Implement a sequence generator where the rates of the Poisson distribution are sampled from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_rate |
float
|
The minimum rate value. |
0.01
|
max_rate |
float
|
The maximum rate value. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Returns:
Type | Description |
---|---|
PoissonSequenceGenerator
|
A sequence generator where the rates of the Poisson
distribution are sampled from a uniform distribution
( |
startorch.sequence.PoissonSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Poisson distribution.
The rates of the Poisson distribution are generated by the rate generator. The rate generator should return the rate for each value in the sequence. The rate values should be greater than 0.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
BaseSequenceGenerator | dict
|
The rate generator or its configuration. The rate generator should return valid rate values. |
required |
Example usage:
>>> from startorch.sequence import RandUniform, Poisson
>>> generator = Poisson(rate=RandUniform(low=1.0, high=2.0))
>>> generator
PoissonSequenceGenerator(
(rate): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.PoissonSequenceGenerator.generate_uniform_rate
classmethod
¶
generate_uniform_rate(
min_rate: float = 0.01,
max_rate: float = 1.0,
feature_size: tuple[int, ...] | list[int] | int = 1,
) -> PoissonSequenceGenerator
Implement a sequence generator where the rates of the Poisson distribution are sampled from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_rate |
float
|
The minimum rate value. |
0.01
|
max_rate |
float
|
The maximum rate value. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Returns:
Type | Description |
---|---|
PoissonSequenceGenerator
|
A sequence generator where the rates of the Poisson
distribution are sampled from a uniform distribution
( |
startorch.sequence.RandAsinhUniform ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from an asinh-uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
float
|
The minimum value (inclusive). |
required |
high |
float
|
The maximum value (exclusive). |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandAsinhUniform
>>> generator = RandAsinhUniform(low=1.0, high=10.0)
>>> generator
RandAsinhUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.RandAsinhUniformSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from an asinh-uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
float
|
The minimum value (inclusive). |
required |
high |
float
|
The maximum value (exclusive). |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandAsinhUniform
>>> generator = RandAsinhUniform(low=1.0, high=10.0)
>>> generator
RandAsinhUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.RandCauchy ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loc |
float
|
The location/median of the Cauchy distribution. |
0.0
|
scale |
float
|
The scale of the distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandCauchy
>>> generator = RandCauchy(loc=0.0, scale=1.0)
>>> generator
RandCauchySequenceGenerator(loc=0.0, scale=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandCauchySequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loc |
float
|
The location/median of the Cauchy distribution. |
0.0
|
scale |
float
|
The scale of the distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandCauchy
>>> generator = RandCauchy(loc=0.0, scale=1.0)
>>> generator
RandCauchySequenceGenerator(loc=0.0, scale=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandExponential ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences by sampling values from an Exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Exponential distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandExponential
>>> generator = RandExponential(rate=1.0)
>>> generator
RandExponentialSequenceGenerator(rate=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandExponentialSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences by sampling values from an Exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Exponential distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandExponential
>>> generator = RandExponential(rate=1.0)
>>> generator
RandExponentialSequenceGenerator(rate=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandHalfCauchy ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
scale |
float
|
The scale of the distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandHalfCauchy
>>> generator = RandHalfCauchy(scale=1.0)
>>> generator
RandHalfCauchySequenceGenerator(scale=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandHalfCauchySequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
scale |
float
|
The scale of the distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandHalfCauchy
>>> generator = RandHalfCauchy(scale=1.0)
>>> generator
RandHalfCauchySequenceGenerator(scale=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandHalfNormal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
std |
float
|
The std of the distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandHalfNormal
>>> generator = RandHalfNormal(std=1.0)
>>> generator
RandHalfNormalSequenceGenerator(std=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandHalfNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
std |
float
|
The std of the distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandHalfNormal
>>> generator = RandHalfNormal(std=1.0)
>>> generator
RandHalfNormalSequenceGenerator(std=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandInt ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences of uniformly distributed integers.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
int
|
The minimum value (included). |
required |
high |
int
|
The maximum value (excluded). |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
()
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandInt
>>> generator = RandInt(0, 100)
>>> generator
RandIntSequenceGenerator(low=0, high=100, feature_size=())
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.RandIntSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences of uniformly distributed integers.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
int
|
The minimum value (included). |
required |
high |
int
|
The maximum value (excluded). |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
()
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandInt
>>> generator = RandInt(0, 100)
>>> generator
RandIntSequenceGenerator(low=0, high=100, feature_size=())
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.RandLogNormal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a log-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
float
|
The mean of the underlying Normal distribution. |
0.0
|
std |
float
|
The standard deviation of the underlying Normal distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandLogNormal
>>> generator = RandLogNormal(mean=0.0, std=1.0)
>>> generator
RandLogNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandLogNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a log-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
float
|
The mean of the underlying Normal distribution. |
0.0
|
std |
float
|
The standard deviation of the underlying Normal distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandLogNormal
>>> generator = RandLogNormal(mean=0.0, std=1.0)
>>> generator
RandLogNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandLogUniform ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from a log-uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
float
|
The minimum value (inclusive). |
required |
high |
float
|
The maximum value (exclusive). |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandLogUniform
>>> generator = RandLogUniform(low=1.0, high=10.0)
>>> generator
RandLogUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.RandLogUniformSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from a log-uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
float
|
The minimum value (inclusive). |
required |
high |
float
|
The maximum value (exclusive). |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandLogUniform
>>> generator = RandLogUniform(low=1.0, high=10.0)
>>> generator
RandLogUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.RandNormal ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate cyclic sequences by sampling values from a Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
float
|
The mean of the Normal distribution. |
0.0
|
std |
float
|
The standard deviation of the Normal distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandNormal
>>> generator = RandNormal(mean=0.0, std=1.0)
>>> generator
RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate cyclic sequences by sampling values from a Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
float
|
The mean of the Normal distribution. |
0.0
|
std |
float
|
The standard deviation of the Normal distribution. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandNormal
>>> generator = RandNormal(mean=0.0, std=1.0)
>>> generator
RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandPoisson ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Poisson distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Poisson distribution. This value has to be greater than 0. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandPoisson
>>> generator = RandPoisson(rate=1.0)
>>> generator
RandPoissonSequenceGenerator(rate=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandPoissonSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Poisson distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Poisson distribution. This value has to be greater than 0. |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandPoisson
>>> generator = RandPoisson(rate=1.0)
>>> generator
RandPoissonSequenceGenerator(rate=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncCauchy ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loc |
float
|
The location/median of the Cauchy distribution. |
0.0
|
scale |
float
|
The scale of the distribution. |
1.0
|
min_value |
float
|
The minimum value (included). |
-2.0
|
max_value |
float
|
The maximum value (excluded). |
2.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncCauchy
>>> generator = RandTruncCauchy(loc=0.0, scale=1.0, min_value=-5.0, max_value=5.0)
>>> generator
RandTruncCauchySequenceGenerator(loc=0.0, scale=1.0, min_value=-5.0, max_value=5.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncCauchySequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loc |
float
|
The location/median of the Cauchy distribution. |
0.0
|
scale |
float
|
The scale of the distribution. |
1.0
|
min_value |
float
|
The minimum value (included). |
-2.0
|
max_value |
float
|
The maximum value (excluded). |
2.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncCauchy
>>> generator = RandTruncCauchy(loc=0.0, scale=1.0, min_value=-5.0, max_value=5.0)
>>> generator
RandTruncCauchySequenceGenerator(loc=0.0, scale=1.0, min_value=-5.0, max_value=5.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncExponential ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences by sampling values from a truncated Exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Exponential distribution. |
1.0
|
max_value |
float
|
The maximum value. |
5.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncExponential
>>> generator = RandTruncExponential(rate=1.0, max_value=3.0)
>>> generator
RandTruncExponentialSequenceGenerator(rate=1.0, max_value=3.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncExponentialSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences by sampling values from a truncated Exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Exponential distribution. |
1.0
|
max_value |
float
|
The maximum value. |
5.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncExponential
>>> generator = RandTruncExponential(rate=1.0, max_value=3.0)
>>> generator
RandTruncExponentialSequenceGenerator(rate=1.0, max_value=3.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncHalfCauchy ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated half-Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
scale |
float
|
The scale of the distribution. |
1.0
|
max_value |
float
|
The maximum value. |
4.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncHalfCauchy
>>> generator = RandTruncHalfCauchy(scale=1.0, max_value=5.0)
>>> generator
RandTruncHalfCauchySequenceGenerator(scale=1.0, max_value=5.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncHalfCauchySequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated half-Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
scale |
float
|
The scale of the distribution. |
1.0
|
max_value |
float
|
The maximum value. |
4.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncHalfCauchy
>>> generator = RandTruncHalfCauchy(scale=1.0, max_value=5.0)
>>> generator
RandTruncHalfCauchySequenceGenerator(scale=1.0, max_value=5.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncHalfNormal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated half-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
std |
float
|
The std of the distribution. |
1.0
|
max_value |
float
|
The maximum value. |
3.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncHalfNormal
>>> generator = RandTruncHalfNormal(std=1.0, max_value=1.0)
>>> generator
RandTruncHalfNormalSequenceGenerator(std=1.0, max_value=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncHalfNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated half-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
std |
float
|
The std of the distribution. |
1.0
|
max_value |
float
|
The maximum value. |
3.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncHalfNormal
>>> generator = RandTruncHalfNormal(std=1.0, max_value=1.0)
>>> generator
RandTruncHalfNormalSequenceGenerator(std=1.0, max_value=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncLogNormal ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate cyclic sequences by sampling values from a truncated log-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
float
|
The mean of the log-Normal distribution. |
0.0
|
std |
float
|
The standard deviation of the log-Normal distribution. |
1.0
|
min_value |
float
|
The minimum value. |
0.0
|
max_value |
float
|
The maximum value. |
5.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncLogNormal
>>> generator = RandTruncLogNormal(mean=0.0, std=1.0, min_value=0.0, max_value=1.0)
>>> generator
RandTruncLogNormalSequenceGenerator(mean=0.0, std=1.0, min_value=0.0, max_value=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncLogNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate cyclic sequences by sampling values from a truncated log-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
float
|
The mean of the log-Normal distribution. |
0.0
|
std |
float
|
The standard deviation of the log-Normal distribution. |
1.0
|
min_value |
float
|
The minimum value. |
0.0
|
max_value |
float
|
The maximum value. |
5.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncLogNormal
>>> generator = RandTruncLogNormal(mean=0.0, std=1.0, min_value=0.0, max_value=1.0)
>>> generator
RandTruncLogNormalSequenceGenerator(mean=0.0, std=1.0, min_value=0.0, max_value=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncNormal ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate cyclic sequences by sampling values from a truncated Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
float
|
The mean of the Normal distribution. |
0.0
|
std |
float
|
The standard deviation of the Normal distribution. |
1.0
|
min_value |
float
|
The minimum value. |
-3.0
|
max_value |
float
|
The maximum value. |
3.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncNormal
>>> generator = RandTruncNormal(mean=0.0, std=1.0, min_value=-1.0, max_value=1.0)
>>> generator
RandTruncNormalSequenceGenerator(mean=0.0, std=1.0, min_value=-1.0, max_value=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandTruncNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate cyclic sequences by sampling values from a truncated Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
float
|
The mean of the Normal distribution. |
0.0
|
std |
float
|
The standard deviation of the Normal distribution. |
1.0
|
min_value |
float
|
The minimum value. |
-3.0
|
max_value |
float
|
The maximum value. |
3.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandTruncNormal
>>> generator = RandTruncNormal(mean=0.0, std=1.0, min_value=-1.0, max_value=1.0)
>>> generator
RandTruncNormalSequenceGenerator(mean=0.0, std=1.0, min_value=-1.0, max_value=1.0, feature_size=(1,))
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandUniform ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
float
|
The minimum value (inclusive). |
0.0
|
high |
float
|
The maximum value (exclusive). |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform
>>> generator = RandUniform()
>>> generator
RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.RandUniformSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
float
|
The minimum value (inclusive). |
0.0
|
high |
float
|
The maximum value (exclusive). |
1.0
|
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
1
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform
>>> generator = RandUniform()
>>> generator
RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.RandWienerProcess ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences where the values are generated by a Wiener process.
Useful link: https://en.wikipedia.org/wiki/Wiener_process
Parameters:
Name | Type | Description | Default |
---|---|---|---|
step_size |
float
|
The time step size. |
1.0
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandWienerProcess
>>> generator = RandWienerProcess()
>>> generator
RandWienerProcessSequenceGenerator(step_size=1.0)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.RandWienerProcessSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences where the values are generated by a Wiener process.
Useful link: https://en.wikipedia.org/wiki/Wiener_process
Parameters:
Name | Type | Description | Default |
---|---|---|---|
step_size |
float
|
The time step size. |
1.0
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> from startorch.sequence import RandWienerProcess
>>> generator = RandWienerProcess()
>>> generator
RandWienerProcessSequenceGenerator(step_size=1.0)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.SineWave ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values with a sine wave pattern.
The sequences are generated by using the following formula:
output = amplitude * sin(2 * pi * frequency * value + phase)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the sequence values. |
required |
frequency |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the frequency values. |
required |
phase |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the phase values. |
required |
amplitude |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the amplitude values. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import Arange, SineWave, RandUniform, Constant, RandLogUniform
>>> generator = SineWave(
... value=Arange(),
... frequency=Constant(RandLogUniform(low=0.01, high=0.1)),
... phase=Constant(RandUniform(low=-1.0, high=1.0)),
... amplitude=Constant(RandLogUniform(low=0.1, high=1.0)),
... )
>>> generator
SineWaveSequenceGenerator(
(value): ArangeSequenceGenerator(feature_size=(1,))
(frequency): ConstantSequenceGenerator(
(sequence): RandLogUniformSequenceGenerator(low=0.01, high=0.1, feature_size=(1,))
)
(phase): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
)
(amplitude): ConstantSequenceGenerator(
(sequence): RandLogUniformSequenceGenerator(low=0.1, high=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.SineWaveSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values with a sine wave pattern.
The sequences are generated by using the following formula:
output = amplitude * sin(2 * pi * frequency * value + phase)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the sequence values. |
required |
frequency |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the frequency values. |
required |
phase |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the phase values. |
required |
amplitude |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the amplitude values. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import Arange, SineWave, RandUniform, Constant, RandLogUniform
>>> generator = SineWave(
... value=Arange(),
... frequency=Constant(RandLogUniform(low=0.01, high=0.1)),
... phase=Constant(RandUniform(low=-1.0, high=1.0)),
... amplitude=Constant(RandLogUniform(low=0.1, high=1.0)),
... )
>>> generator
SineWaveSequenceGenerator(
(value): ArangeSequenceGenerator(feature_size=(1,))
(frequency): ConstantSequenceGenerator(
(sequence): RandLogUniformSequenceGenerator(low=0.01, high=0.1, feature_size=(1,))
)
(phase): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
)
(amplitude): ConstantSequenceGenerator(
(sequence): RandLogUniformSequenceGenerator(low=0.1, high=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Sinh ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the hyperbolic sine (sinh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Sinh, RandUniform
>>> generator = Sinh(RandUniform())
>>> generator
SinhSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.SinhSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the hyperbolic sine (sinh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Sinh, RandUniform
>>> generator = Sinh(RandUniform())
>>> generator
SinhSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Sort ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that sorts a generated sequence.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
descending |
bool
|
Control the sorting order. If |
False
|
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Sort
>>> generator = Sort(RandUniform())
>>> generator
SortSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.SortSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that sorts a generated sequence.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
descending |
bool
|
Control the sorting order. If |
False
|
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Sort
>>> generator = Sort(RandUniform())
>>> generator
SortSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Sqrt ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the squared root of a batch of sequences.
Example usage:
>>> import torch
>>> from startorch.sequence import Sqrt, RandUniform, RandNormal
>>> generator = Sqrt(RandUniform(1.0, 4.0))
>>> generator
SqrtSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=1.0, high=4.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.SqrtSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the squared root of a batch of sequences.
Example usage:
>>> import torch
>>> from startorch.sequence import Sqrt, RandUniform, RandNormal
>>> generator = Sqrt(RandUniform(1.0, 4.0))
>>> generator
SqrtSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=1.0, high=4.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Sub ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that subtracts sequences.
sequence = sequence_1 - sequence_2
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequence1 |
BaseSequenceGenerator | dict
|
The first sequence generator or its configuration. |
required |
sequence2 |
BaseSequenceGenerator | dict
|
The second sequence generator or its configuration. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import Sub, RandUniform, RandNormal
>>> generator = Sub(RandUniform(), RandNormal())
>>> generator
SubSequenceGenerator(
(sequence1): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(sequence2): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.SubSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator that subtracts sequences.
sequence = sequence_1 - sequence_2
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sequence1 |
BaseSequenceGenerator | dict
|
The first sequence generator or its configuration. |
required |
sequence2 |
BaseSequenceGenerator | dict
|
The second sequence generator or its configuration. |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import Sub, RandUniform, RandNormal
>>> generator = Sub(RandUniform(), RandNormal())
>>> generator
SubSequenceGenerator(
(sequence1): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
(sequence2): RandNormalSequenceGenerator(mean=0.0, std=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Tanh ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the hyperbolic tangent (tanh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Tanh, RandUniform
>>> generator = Tanh(RandUniform())
>>> generator
TanhSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TanhSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that computes the hyperbolic tangent (tanh) of each value.
Example usage:
>>> import torch
>>> from startorch.sequence import Tanh, RandUniform
>>> generator = Tanh(RandUniform())
>>> generator
TanhSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TensorSequence ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences from a tensor generator.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tensor |
BaseTensorGenerator | dict
|
A tensor generator (or its configuration). |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
()
|
Example usage:
>>> import torch
>>> from startorch.sequence import TensorSequence
>>> from startorch.tensor import RandUniform
>>> generator = TensorSequence(RandUniform())
>>> generator
TensorSequenceGenerator(
(tensor): RandUniformTensorGenerator(low=0.0, high=1.0)
(feature_size): ()
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TensorSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences from a tensor generator.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tensor |
BaseTensorGenerator | dict
|
A tensor generator (or its configuration). |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
()
|
Example usage:
>>> import torch
>>> from startorch.sequence import TensorSequence
>>> from startorch.tensor import RandUniform
>>> generator = TensorSequence(RandUniform())
>>> generator
TensorSequenceGenerator(
(tensor): RandUniformTensorGenerator(low=0.0, high=1.0)
(feature_size): ()
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Time ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator to generate time sequences.
The time is represented as a float value. The unit depends on the context. If the unit is the second:
1.2
->00:00:01.200
61.2
->00:01:01.200
3661.2
->01:01:01.200
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time(RandUniform())
>>> generator
TimeSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Time.create_exponential_constant_time_diff
classmethod
¶
create_exponential_constant_time_diff(
rate: float = 1.0,
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps is constant and is sampled from an exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the exponential distribution. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps is constant and is sampled from an exponential distribution. |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_exponential_constant_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): ConstantSequenceGenerator(
(sequence): ExponentialSequenceGenerator(
(rate): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=1.0, high=1.0, feature_size=(1,))
)
)
)
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Time.create_exponential_time_diff
classmethod
¶
create_exponential_time_diff(
rate: float = 1.0,
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps follows an exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the exponential distribution. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps follows an exponential distribution. |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_exponential_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): ExponentialSequenceGenerator(
(rate): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=1.0, high=1.0, feature_size=(1,))
)
)
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Time.create_poisson_constant_time_diff
classmethod
¶
create_poisson_constant_time_diff(
rate: float = 1.0,
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps is constant and is sampled from a Poisson distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Poisson distribution. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps is constant and is sampled from a Poisson distribution. |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_poisson_constant_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): ConstantSequenceGenerator(
(sequence): RandPoissonSequenceGenerator(rate=1.0, feature_size=(1,))
)
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Time.create_poisson_time_diff
classmethod
¶
create_poisson_time_diff(
rate: float = 1.0,
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps follows a Poisson distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Poisson distribution. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps follows a Poisson distribution. |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_poisson_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): RandPoissonSequenceGenerator(rate=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Time.create_uniform_constant_time_diff
classmethod
¶
create_uniform_constant_time_diff(
min_time_diff: float = 0.0, max_time_diff: float = 1.0
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps is constant and is sampled from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_time_diff |
float
|
The minimum time difference between two consecutive steps. |
0.0
|
max_time_diff |
float
|
The maximum time difference between two consecutive steps. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps is constant and is sampled from a uniform distribution. |
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_uniform_constant_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Time.create_uniform_time
classmethod
¶
create_uniform_time(
min_time: float = 0.0, max_time: float = 1.0
) -> TimeSequenceGenerator
Create a time sequence generator where the time is sampled from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_time |
float
|
The minimum time. |
0.0
|
max_time |
float
|
The maximum time. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time is sampled from a uniform distribution. |
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
```pycon
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_uniform_time()
>>> generator
TimeSequenceGenerator(
(sequence): SortSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.Time.create_uniform_time_diff
classmethod
¶
create_uniform_time_diff(
min_time_diff: float = 0.0, max_time_diff: float = 1.0
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps follows a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_time_diff |
float
|
The minimum time difference between two consecutive steps. |
0.0
|
max_time_diff |
float
|
The maximum time difference between two consecutive steps. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps follows a uniform distribution. |
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_uniform_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TimeSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator to generate time sequences.
The time is represented as a float value. The unit depends on the context. If the unit is the second:
1.2
->00:00:01.200
61.2
->00:01:01.200
3661.2
->01:01:01.200
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time(RandUniform())
>>> generator
TimeSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TimeSequenceGenerator.create_exponential_constant_time_diff
classmethod
¶
create_exponential_constant_time_diff(
rate: float = 1.0,
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps is constant and is sampled from an exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the exponential distribution. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps is constant and is sampled from an exponential distribution. |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_exponential_constant_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): ConstantSequenceGenerator(
(sequence): ExponentialSequenceGenerator(
(rate): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=1.0, high=1.0, feature_size=(1,))
)
)
)
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TimeSequenceGenerator.create_exponential_time_diff
classmethod
¶
create_exponential_time_diff(
rate: float = 1.0,
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps follows an exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the exponential distribution. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps follows an exponential distribution. |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_exponential_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): ExponentialSequenceGenerator(
(rate): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=1.0, high=1.0, feature_size=(1,))
)
)
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TimeSequenceGenerator.create_poisson_constant_time_diff
classmethod
¶
create_poisson_constant_time_diff(
rate: float = 1.0,
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps is constant and is sampled from a Poisson distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Poisson distribution. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps is constant and is sampled from a Poisson distribution. |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_poisson_constant_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): ConstantSequenceGenerator(
(sequence): RandPoissonSequenceGenerator(rate=1.0, feature_size=(1,))
)
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TimeSequenceGenerator.create_poisson_time_diff
classmethod
¶
create_poisson_time_diff(
rate: float = 1.0,
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps follows a Poisson distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
float
|
The rate of the Poisson distribution. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps follows a Poisson distribution. |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_poisson_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): RandPoissonSequenceGenerator(rate=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TimeSequenceGenerator.create_uniform_constant_time_diff
classmethod
¶
create_uniform_constant_time_diff(
min_time_diff: float = 0.0, max_time_diff: float = 1.0
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps is constant and is sampled from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_time_diff |
float
|
The minimum time difference between two consecutive steps. |
0.0
|
max_time_diff |
float
|
The maximum time difference between two consecutive steps. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps is constant and is sampled from a uniform distribution. |
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_uniform_constant_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): ConstantSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TimeSequenceGenerator.create_uniform_time
classmethod
¶
create_uniform_time(
min_time: float = 0.0, max_time: float = 1.0
) -> TimeSequenceGenerator
Create a time sequence generator where the time is sampled from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_time |
float
|
The minimum time. |
0.0
|
max_time |
float
|
The maximum time. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time is sampled from a uniform distribution. |
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
```pycon
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_uniform_time()
>>> generator
TimeSequenceGenerator(
(sequence): SortSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TimeSequenceGenerator.create_uniform_time_diff
classmethod
¶
create_uniform_time_diff(
min_time_diff: float = 0.0, max_time_diff: float = 1.0
) -> TimeSequenceGenerator
Create a time sequence generator where the time difference between two consecutive steps follows a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
min_time_diff |
float
|
The minimum time difference between two consecutive steps. |
0.0
|
max_time_diff |
float
|
The maximum time difference between two consecutive steps. |
1.0
|
Returns:
Type | Description |
---|---|
TimeSequenceGenerator
|
A time sequence generator where the time difference between two consecutive steps follows a uniform distribution. |
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import RandUniform, Time
>>> generator = Time.create_uniform_time_diff()
>>> generator
TimeSequenceGenerator(
(sequence): CumsumSequenceGenerator(
(sequence): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.TransformSequenceGenerator ¶
Bases: BaseWrapperSequenceGenerator
Implement a sequence generator that generates a batch of sequences and then transform it.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
The sequence generator or its configuration. |
required |
transformer |
BaseTensorTransformer | dict
|
The tensor/sequence transformer or its configuration. |
required |
Example usage:
>>> from startorch.sequence import TransformSequenceGenerator, Full
>>> from startorch.tensor.transformer import Abs
>>> generator = TransformSequenceGenerator(
... generator=Full(value=-1, feature_size=()), transformer=Abs()
... )
>>> generator
TransformSequenceGenerator(
(generator): FullSequenceGenerator(value=-1, feature_size=())
(transformer): AbsTensorTransformer()
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1]])
startorch.sequence.TruncCauchy ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loc |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the location. |
required |
scale |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the scale. |
required |
min_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (included). |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncCauchy
>>> generator = TruncCauchy(
... loc=RandUniform(low=-1.0, high=1.0),
... scale=RandUniform(low=1.0, high=2.0),
... min_value=RandUniform(low=-10.0, high=-5.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncCauchySequenceGenerator(
(loc): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(scale): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(min_value): RandUniformSequenceGenerator(low=-10.0, high=-5.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncCauchySequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
loc |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the location. |
required |
scale |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the scale. |
required |
min_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (included). |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncCauchy
>>> generator = TruncCauchy(
... loc=RandUniform(low=-1.0, high=1.0),
... scale=RandUniform(low=1.0, high=2.0),
... min_value=RandUniform(low=-10.0, high=-5.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncCauchySequenceGenerator(
(loc): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(scale): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(min_value): RandUniformSequenceGenerator(low=-10.0, high=-5.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncExponential ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from an Exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the rate. |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncExponential
>>> generator = TruncExponential(
... rate=RandUniform(low=1.0, high=10.0),
... max_value=RandUniform(low=1.0, high=100.0),
... )
>>> generator
TruncExponentialSequenceGenerator(
(rate): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=1.0, high=100.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncExponentialSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from an Exponential distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rate |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the rate. |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncExponential
>>> generator = TruncExponential(
... rate=RandUniform(low=1.0, high=10.0),
... max_value=RandUniform(low=1.0, high=100.0),
... )
>>> generator
TruncExponentialSequenceGenerator(
(rate): RandUniformSequenceGenerator(low=1.0, high=10.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=1.0, high=100.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncHalfCauchy ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
scale |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the scale. |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncHalfCauchy
>>> generator = TruncHalfCauchy(
... scale=RandUniform(low=1.0, high=2.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncHalfCauchySequenceGenerator(
(scale): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncHalfCauchySequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Cauchy distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
scale |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the scale. |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncHalfCauchy
>>> generator = TruncHalfCauchy(
... scale=RandUniform(low=1.0, high=2.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncHalfCauchySequenceGenerator(
(scale): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncHalfNormal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the std. |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncHalfNormal
>>> generator = TruncHalfNormal(
... std=RandUniform(low=1.0, high=2.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncHalfNormalSequenceGenerator(
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncHalfNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a half-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the std. |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncHalfNormal
>>> generator = TruncHalfNormal(
... std=RandUniform(low=1.0, high=2.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncHalfNormalSequenceGenerator(
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncLogNormal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated log-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the mean of the underlying Normal distribution. |
required |
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation of the underlying Normal distribution. |
required |
min_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (included). |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncLogNormal
>>> generator = TruncLogNormal(
... mean=RandUniform(low=-1.0, high=1.0),
... std=RandUniform(low=1.0, high=2.0),
... min_value=RandUniform(low=0.0, high=2.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncLogNormalSequenceGenerator(
(mean): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(min_value): RandUniformSequenceGenerator(low=0.0, high=2.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncLogNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated log-Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the mean of the underlying Normal distribution. |
required |
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation of the underlying Normal distribution. |
required |
min_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (included). |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncLogNormal
>>> generator = TruncLogNormal(
... mean=RandUniform(low=-1.0, high=1.0),
... std=RandUniform(low=1.0, high=2.0),
... min_value=RandUniform(low=0.0, high=2.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncLogNormalSequenceGenerator(
(mean): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(min_value): RandUniformSequenceGenerator(low=0.0, high=2.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncNormal ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the mean. |
required |
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation. |
required |
min_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (included). |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncNormal
>>> generator = TruncNormal(
... mean=RandUniform(low=-1.0, high=1.0),
... std=RandUniform(low=1.0, high=2.0),
... min_value=RandUniform(low=-10.0, high=-5.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncNormalSequenceGenerator(
(mean): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(min_value): RandUniformSequenceGenerator(low=-10.0, high=-5.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.TruncNormalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequence by sampling values from a truncated Normal distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mean |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the mean. |
required |
std |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the standard deviation. |
required |
min_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (included). |
required |
max_value |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (excluded). |
required |
Example usage:
>>> from startorch.sequence import RandUniform, TruncNormal
>>> generator = TruncNormal(
... mean=RandUniform(low=-1.0, high=1.0),
... std=RandUniform(low=1.0, high=2.0),
... min_value=RandUniform(low=-10.0, high=-5.0),
... max_value=RandUniform(low=5.0, high=10.0),
... )
>>> generator
TruncNormalSequenceGenerator(
(mean): RandUniformSequenceGenerator(low=-1.0, high=1.0, feature_size=(1,))
(std): RandUniformSequenceGenerator(low=1.0, high=2.0, feature_size=(1,))
(min_value): RandUniformSequenceGenerator(low=-10.0, high=-5.0, feature_size=(1,))
(max_value): RandUniformSequenceGenerator(low=5.0, high=10.0, feature_size=(1,))
)
>>> generator.generate(seq_len=6, batch_size=2)
tensor([[...]])
startorch.sequence.Uniform ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (inclusive). |
required |
high |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (exclusive). |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import Uniform, RandUniform
>>> generator = Uniform(low=RandUniform(-1.0, 0.0), high=RandUniform(0.0, 1.0))
>>> generator
UniformSequenceGenerator(
(low): RandUniformSequenceGenerator(low=-1.0, high=0.0, feature_size=(1,))
(high): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.UniformCategorical ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences of uniformly distributed categorical variables.
All the categories have the same probability.
Note
It is a more efficient implementation of
Multinomial.generate_uniform_weights
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_categories |
int
|
The number of categories. |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
()
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import UniformCategorical
>>> generator = UniformCategorical(10)
>>> generator
UniformCategoricalSequenceGenerator(num_categories=10, feature_size=())
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.UniformCategoricalSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a class to generate sequences of uniformly distributed categorical variables.
All the categories have the same probability.
Note
It is a more efficient implementation of
Multinomial.generate_uniform_weights
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_categories |
int
|
The number of categories. |
required |
feature_size |
tuple[int, ...] | list[int] | int
|
The feature size. |
()
|
Raises:
Type | Description |
---|---|
ValueError
|
if |
Example usage:
>>> import torch
>>> from startorch.sequence import UniformCategorical
>>> generator = UniformCategorical(10)
>>> generator
UniformCategoricalSequenceGenerator(num_categories=10, feature_size=())
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.UniformSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to generate sequences by sampling values from a uniform distribution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
low |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the minimum value (inclusive). |
required |
high |
BaseSequenceGenerator | dict
|
A sequence generator (or its configuration) to generate the maximum value (exclusive). |
required |
Example usage:
>>> import torch
>>> from startorch.sequence import Uniform, RandUniform
>>> generator = Uniform(low=RandUniform(-1.0, 0.0), high=RandUniform(0.0, 1.0))
>>> generator
UniformSequenceGenerator(
(low): RandUniformSequenceGenerator(low=-1.0, high=0.0, feature_size=(1,))
(high): RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))
)
>>> generator.generate(seq_len=12, batch_size=4)
tensor([[...]])
startorch.sequence.VanillaSequenceGenerator ¶
Bases: BaseSequenceGenerator
Implement a sequence generator to "generate" the input data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
Tensor
|
The sequence data to generate. |
required |
Sequence usage:
>>> import torch
>>> from startorch.sequence import VanillaSequenceGenerator
>>> generator = VanillaSequenceGenerator(data=torch.arange(40).view(4, 10))
>>> generator
VanillaSequenceGenerator(batch_size=4, seq_len=10)
>>> generator.generate(batch_size=3, seq_len=6)
tensor([[ 0, 1, 2, 3, 4, 5],
[10, 11, 12, 13, 14, 15],
[20, 21, 22, 23, 24, 25]])
startorch.sequence.is_sequence_generator_config ¶
is_sequence_generator_config(config: dict) -> bool
Indicate if the input configuration is a configuration for a
BaseSequenceGenerator
.
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.sequence import is_sequence_generator_config
>>> is_sequence_generator_config({"_target_": "startorch.sequence.RandUniform"})
True
startorch.sequence.setup_sequence_generator ¶
setup_sequence_generator(
generator: BaseSequenceGenerator | dict,
) -> BaseSequenceGenerator
Set up a sequence generator.
The sequence generator is instantiated from its configuration by
using the BaseSequenceGenerator
factory function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
generator |
BaseSequenceGenerator | dict
|
A sequence generator or its configuration. |
required |
Returns:
Type | Description |
---|---|
BaseSequenceGenerator
|
A sequence generator. |
Example usage:
>>> from startorch.sequence import setup_sequence_generator
>>> setup_sequence_generator({"_target_": "startorch.sequence.RandUniform"})
RandUniformSequenceGenerator(low=0.0, high=1.0, feature_size=(1,))