Source code for bayesflow.adapters.transforms.shift
import keras.ops as ops
from bayesflow.utils.serialization import serializable, serialize
from bayesflow.types import Tensor
from .elementwise_transform import ElementwiseTransform
[docs]
@serializable("bayesflow.adapters")
class Shift(ElementwiseTransform):
def __init__(self, shift: float | Tensor):
self.shift = shift
[docs]
def get_config(self) -> dict:
return serialize({"shift": self.shift})
[docs]
def forward(self, data: Tensor, **kwargs) -> Tensor:
shift = ops.convert_to_tensor(self.shift, dtype=ops.dtype(data))
return ops.add(data, shift)
[docs]
def inverse(self, data: Tensor, **kwargs) -> Tensor:
shift = ops.convert_to_tensor(self.shift, dtype=ops.dtype(data))
return ops.subtract(data, shift)