torch_openreml.covariance.transform.TransformExp2

class torch_openreml.covariance.transform.TransformExp2[source]

Bases: Transform

Base-2 exponential transform.

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

Initialize base-2 exponential transform.

Methods

__call__(x)

Apply base-2 exponential transform.

grad(x)

Compute derivative of \(2^x\).

inverse(x)

Apply inverse base-2 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 base-2 exponential transform.

Parameters:

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

Returns:

\(2^x\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformExp2

t = TransformExp2()
x = torch.tensor([0.0, 1.0])
t(x)
tensor([1., 2.])
inverse(x)[source]

Apply inverse base-2 logarithm.

Parameters:

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

Returns:

\(\log_{2}(x)\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformExp2

t = TransformExp2()
x = torch.tensor([1.0, 2.0])
t.inverse(x)
tensor([0., 1.])
grad(x)[source]

Compute derivative of \(2^x\).

Note

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

x (torch.Tensor) – Input tensor.

Returns:

\(2^x \ln 2\).

Return type:

torch.Tensor

Example:

import torch
from torch_openreml.covariance.transform import TransformExp2

t = TransformExp2()
x = torch.tensor([1.0])
t.grad(x)
tensor([1.3863])