torch_openreml.covariance.transform.TransformExp

class torch_openreml.covariance.transform.TransformExp[source]

Bases: Transform

Exponential transform using the natural exponential function.

\[f(x) = e^x\]

Initialize the exponential transform.

Methods

__call__(x)

Apply the natural exponential transform.

grad(x)

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

inverse(x)

Apply the inverse transform (natural logarithm).

Attributes

codomain

Codomain of the transform.

domain

Domain of the transform.

domain = 'ℝ'

Domain of the transform.

codomain = 'ℝ⁺'

Codomain of the transform.

__call__(x)[source]

Apply the natural exponential transform.

Parameters:

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

Returns:

Element-wise \(e^x\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformExp

t = TransformExp()
x = torch.tensor([0.0, 1.0])
t(x)
tensor([1.0000, 2.7183])
inverse(x)[source]

Apply the inverse transform (natural logarithm).

Parameters:

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

Returns:

\(\log(x)\).

Return type:

torch.Tensor

import torch
from torch_openreml.covariance.transform import TransformExp

t = TransformExp()
x = torch.tensor([1.0])
t.inverse(x)
tensor([0.])
grad(x)[source]

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

Parameters:

x (torch.Tensor) – Input tensor.

Returns:

\(e^x\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformExp

t = TransformExp()
x = torch.tensor([0.0])
t.grad(x)
tensor([1.])