Rate this Page

ComposeValueTransform#

class torchrl.modules.ComposeValueTransform(*transforms: ValueTransform)[source]#

Compose value transforms while preserving the inverse mapping.

Forward transforms are applied in the order provided. Inverse transforms are applied in reverse order.

Parameters:

*transforms (ValueTransform) – Transforms to compose.

Examples

>>> import torch
>>> from torchrl.modules import (
...     ComposeValueTransform,
...     SignedHyperbolicValueTransform,
...     SymLogValueTransform,
... )
>>> transform = ComposeValueTransform(
...     SignedHyperbolicValueTransform(), SymLogValueTransform()
... )
>>> value = torch.tensor([-100.0, 0.0, 100.0])
>>> transformed = transform(value)
>>> transformed
tensor([-2.3175,  0.0000,  2.3175])
>>> transform.inverse(transformed)
tensor([-100.0000,    0.0000,  100.0000])

See also

ValueTransform for the component interface, SymLogValueTransform, and SignedHyperbolicValueTransform.

forward(value: Tensor) Tensor[source]#

Apply the component transforms in order.

inverse(value: Tensor) Tensor[source]#

Apply the component inverse transforms in reverse order.