vortex_torch.indexer.elementwise

Classes

Abs([alpha, beta])

Absolute value of an affine transform (an Elementwise).

Add_Mul([alpha, beta])

Affine transform \(\beta x + \alpha\) (an Elementwise).

Elementwise([alpha, beta])

Unary elementwise op — applies a scalar function pointwise.

Relu([alpha, beta])

ReLU-like activation with threshold/fallback (an Elementwise).

Sigmoid([alpha, beta])

Sigmoid activation with affine argument (an Elementwise).

Silu([alpha, beta])

SiLU-like activation with affine pre-transform (an Elementwise).

class Elementwise(alpha=1.0, beta=1.0)[source]

Bases: vOp

Unary elementwise op — applies a scalar function pointwise.

Math:
\[Y_{s,c,d} = f(X_{s,c,d};\, \alpha, \beta),\]

where \(f\) is fixed by the subclass (ReLU / SiLU / Sigmoid / affine / abs / log / exp).

__init__:

Elementwise(alpha=1.0, beta=1.0) — scalar parameters \(\alpha\), \(\beta\) consumed by \(f\).

__call__:

y = op(x, ctx=ctx)x is [S, C, D]; returns the same shape. Output is BATCHED iff the input is, else RAGGED.

Note:

use a concrete subclass — Relu, Silu, Sigmoid, Add_Mul, Abs, Log, Exp.

Parameters:
class Relu(alpha=0.0, beta=0.0)[source]

Bases: Elementwise

ReLU-like activation with threshold/fallback (an Elementwise).

Math:
\[\begin{split}f(x;\alpha,\beta) = \begin{cases} x, & x \ge \alpha, \\ \beta, & x < \alpha. \end{cases}\end{split}\]
__init__:

Relu(alpha=0.0, beta=0.0) — threshold \(\alpha\), fallback value \(\beta\) (used when \(x<\alpha\)).

Parameters:
class Silu(alpha=0.0, beta=0.0)[source]

Bases: Elementwise

SiLU-like activation with affine pre-transform (an Elementwise).

Math:
\[f(x;\alpha,\beta) = \frac{x}{1 + \exp(\beta x + \alpha)}.\]
__init__:

Silu(alpha=0.0, beta=0.0) — bias \(\alpha\), slope \(\beta\) inside the exponential.

Parameters:
class Sigmoid(alpha=0.0, beta=0.0)[source]

Bases: Elementwise

Sigmoid activation with affine argument (an Elementwise).

Math:
\[f(x;\alpha,\beta) = \frac{1}{1 + \exp(\beta x + \alpha)}.\]
__init__:

Sigmoid(alpha=0.0, beta=0.0) — bias \(\alpha\), slope \(\beta\) inside the exponential.

Parameters:
class Add_Mul(alpha=0.0, beta=1.0)[source]

Bases: Elementwise

Affine transform \(\beta x + \alpha\) (an Elementwise).

Math:
\[f(x;\alpha,\beta) = \beta x + \alpha.\]
__init__:

Add_Mul(alpha=0.0, beta=1.0) — additive \(\alpha\), multiplicative \(\beta\) (defaults give the identity).

Parameters:
class Abs(alpha=0.0, beta=1.0)[source]

Bases: Elementwise

Absolute value of an affine transform (an Elementwise).

Math:
\[f(x;\alpha,\beta) = \lvert \beta x + \alpha \rvert.\]
__init__:

Abs(alpha=0.0, beta=1.0) — additive \(\alpha\), multiplicative \(\beta\) inside the absolute value.

Parameters:
class Log(alpha=0.0, beta=1.0)[source]

Bases: Elementwise

Natural logarithm of an affine transform (an Elementwise).

Math:
\[f(x;\alpha,\beta) = \log(\beta x + \alpha).\]
__init__:

Log(alpha=0.0, beta=1.0) — additive \(\alpha\), multiplicative \(\beta\) inside the logarithm.

Parameters:
class Exp(alpha=0.0, beta=1.0)[source]

Bases: Elementwise

Exponential of an affine transform (an Elementwise).

Math:
\[f(x;\alpha,\beta) = \exp(\beta x + \alpha).\]
__init__:

Exp(alpha=0.0, beta=1.0) — additive \(\alpha\), multiplicative \(\beta\) inside the exponential.

Parameters: