torch_openreml.covariance.transform.TransformExpPow2

class torch_openreml.covariance.transform.TransformExpPow2[source]

Bases: Transform

Exponential transform with exponent scaled by 2.

\[f(x) = e^{2x}\]

Initialize the scaled exponential transform.

Methods

__call__(x)

Apply the scaled exponential transform.

grad(x)

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

inverse(x)

Apply the inverse transform.

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 scaled exponential transform.

Parameters:

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

Returns:

Element-wise \(e^{2x}\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformExpPow2

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

Apply the inverse transform.

Parameters:

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

Returns:

\(\frac{\log(x)}{2}\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformExpPow2

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

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

Note

\[\frac{d}{dx} e^{2x} = 2e^{2x}\]
Parameters:

x (torch.Tensor) – Input tensor.

Returns:

\(2e^{2x}\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformExpPow2

t = TransformExpPow2()
x = torch.tensor([0.0, 1.0])
t.grad(x)
tensor([ 2.0000, 14.7781])