torch_openreml.covariance.transform.TransformSigmoid

class torch_openreml.covariance.transform.TransformSigmoid[source]

Bases: Transform

Sigmoid transform mapping reals to the open unit interval.

\[f(x) = \frac{1}{1 + e^{-x}}\]

Initialize the sigmoid transform.

Methods

__call__(x)

Apply the sigmoid transform.

grad(x)

Compute derivative of \(\sigma(x)\) for chain rule propagation.

inverse(x)

Apply the inverse transform (logit).

Attributes

codomain

Codomain of the transform.

domain

Domain of the transform.

domain = 'ℝ₀⁺'

Domain of the transform.

codomain = '(0, 1)'

Codomain of the transform.

__call__(x)[source]

Apply the sigmoid transform.

Parameters:

x (torch.Tensor) – Input tensor in \(\mathbb{R}_{0+}\).

Returns:

Element-wise \(\frac{1}{1 + e^{-x}}\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformSigmoid

t = TransformSigmoid()
x = torch.tensor([-2.0, 0.0, 2.0])
t(x)
tensor([0.1192, 0.5000, 0.8808])
inverse(x)[source]

Apply the inverse transform (logit).

Parameters:

x (torch.Tensor) – Input tensor in \((0, 1)\).

Returns:

Element-wise \(\log\frac{x}{1 - x}\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformSigmoid

t = TransformSigmoid()
x = torch.tensor([0.1, 0.5, 0.9])
t.inverse(x)
tensor([-2.1972,  0.0000,  2.1972])
grad(x)[source]

Compute derivative of \(\sigma(x)\) for chain rule propagation.

Note

\[\frac{d}{dx} \sigma(x) = \sigma(x)(1 - \sigma(x))\]
Parameters:

x (torch.Tensor) – Input tensor.

Returns:

\(\sigma(x)(1 - \sigma(x))\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformSigmoid

t = TransformSigmoid()
x = torch.tensor([0.0, 1.0])
t.grad(x)
tensor([0.2500, 0.1966])