Skip to content

Bijectors

fenbux supports tensorflow_probability-like and Bijectors.jl-like bijector module.

For example, we can create a bijector and transform a sample as follows:

import jax.numpy as jnp
from fenbux.bijector import Exp, evaluate

bij = Exp()
x = jnp.array([1., 2., 3.])
evaluate(bij, x)

And inverse transform a sample as follows:

import jax.numpy as jnp
from fenbux.bijector import Exp, inverse, evaluate

bij = Exp()
y = jnp.array([1., 2., 3.])
evaluate(inverse(bij), y)

And you can apply a bijector to a distribution as follows:

import jax.numpy as jnp
from fenbux.bijector import Exp, transform
from fenbux.univariate import Normal
from fenbux import logpdf

dist = Normal(0, 1)
bij = Exp()

log_normal = transform(dist, bij)

x = jnp.array([1., 2., 3.])
logpdf(log_normal, x)

Functions that are supported for bijectors are:

fenbux.bijector.evaluate(bijector: Bijector, x: ArrayLike)

Evaluate a bijector on values

Parameters:

Name Type Description Default
bijector Bijector

A bijector object.

required
x ArrayLike

Value to transform.

required

Examples:

from fenbux.bijector import evaluate, Identity evaluate(Identity(), 0.0)

fenbux.bijector.transform(d: AbstractDistribution, bijector: Bijector)

Transformed distribution

Parameters:

Name Type Description Default
d AbstractDistribution

A distribution object.

required
bijector Bijector

A bijector object.

required

Examples:

from fenbux.univariate import Normal from fenbux.bijector import transform, Identity dist = Normal(0.0, 1.0) transformed(dist, Identity())

fenbux.bijector.inverse(bijector: Bijector)

Inverse of a bijector

Parameters:

Name Type Description Default
bijector Bijector

A bijector object.

required

Examples:

from fenbux import inverse, Exp inverse(Exp())

fenbux.bijector.is_increasing(bijector: Bijector)

Check if a bijector is increasing

Parameters:

Name Type Description Default
bijector Bijector

A bijector object.

required

Examples:

from fenbux.bijector import is_increasing, Identity is_increasing(Identity())

fenbux.bijector.ladj(bijector: Bijector, x: ArrayLike)

Log absolute determinant of the jacobian of a bijector

Parameters:

Name Type Description Default
bijector Bijector

A bijector object.

required
x ArrayLike

Value to transform.

required

Examples:

from fenbux.bijector import ladj, Identity ladj(Identity(), 0.0)

fenbux.bijector.ildj(bijector: Bijector, x: ArrayLike)

Inverse log determinant of the jacobian of a bijector

Parameters:

Name Type Description Default
bijector Bijector

A bijector object.

required
x ArrayLike)

Value to transform.

required

Examples:

from fenbux.bijector import ildj, Identity ildj(Identity(), 0.0)

fenbux.bijector.value_and_ladj(bijector: Bijector, x)

Value and log absolute determinant of the jacobian of a bijector

Parameters:

Name Type Description Default
bijector Bijector

A bijector object.

required
x ArrayLike

Value to transform.

required

Examples:

from fenbux.bijector import value_and_ladj, Identity value_and_ladj(Identity(), 0.0)

Supported bijectors are:

fenbux.bijector.Exp

Exp Bijector

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijectors import Exp, evaluate
>>> bij = Exp()
>>> x = jnp.array([1.0, 2.0, 3.0])
>>> y = evaluate(bij, x)
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__init__(self)
__setattr__(self, name, value)

Implement setattr(self, name, value).

__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).

fenbux.bijector.Log

Log Bijector

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijectors import Log, evaluate
>>> bij = Log()
>>> x = jnp.array([1.0, 2.0, 3.0])
>>> y = evaluate(bij, x)
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__init__(self)
__setattr__(self, name, value)

Implement setattr(self, name, value).

__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).

fenbux.bijector.Shift

Shift Bijector

Parameters:

Name Type Description Default
shift ArrayLike

shift parameter

required

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijector import Shift, evaluate
>>> bij = Shift(shift=2.0)
>>> x = jnp.array([1.0, 2.0, 3.0])
>>> y = evaluate(bij, x)
shift: ArrayLike dataclass-field
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__setattr__(self, name, value)

Implement setattr(self, name, value).

__init__(self, shift: ArrayLike)
__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).

fenbux.bijector.Scale

Scale Bijector

Parameters:

Name Type Description Default
scale ArrayLike

scale parameter

required

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijector import Scale, evaluate
>>> bij = Scale(scale=2.0)
>>> x = jnp.array([1.0, 2.0, 3.0])
>>> y = evaluate(bij, x)
scale: ArrayLike dataclass-field
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__setattr__(self, name, value)

Implement setattr(self, name, value).

__init__(self, scale: ArrayLike)
__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).

fenbux.bijector.Identity

Identity Bijector

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijector import Identity, evaluate
>>> bij = Identity()
>>> x = jnp.array([1.0, 2.0, 3.0])
>>> y = evaluate(bij, x)
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__init__(self)
__setattr__(self, name, value)

Implement setattr(self, name, value).

__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).

fenbux.bijector.Logit

Logit Bijector

Parameters:

Name Type Description Default
a ArrayLike

Lower bound of the input domain. Default value: 0.0.

0.0
b ArrayLike

Upper bound of the input domain. Default value: 1.0.

1.0

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijector import Logit, evaluate
>>> bij = Logit()
>>> x = jnp.array([0.1, 0.5, 0.9])
>>> y = evaluate(bij, x)
a: Union[jax.Array, numpy.ndarray, numpy.bool_, numpy.number, bool, int, float, complex] dataclass-field
b: Union[jax.Array, numpy.ndarray, numpy.bool_, numpy.number, bool, int, float, complex] dataclass-field
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__setattr__(self, name, value)

Implement setattr(self, name, value).

__init__(self, a: Union[jax.Array, numpy.ndarray, numpy.bool_, numpy.number, bool, int, float, complex] = 0.0, b: Union[jax.Array, numpy.ndarray, numpy.bool_, numpy.number, bool, int, float, complex] = 1.0)
__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).

fenbux.bijector.LeakyReLU

LeakyReLU Bijector

Parameters:

Name Type Description Default
alpha ArrayLike

Slope of the negative part of the function. Default value: 0.2.

0.2

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijectors import LeakyReLU, evaluate
>>> bij = LeakyReLU(0.2)
>>> x = jnp.array([-1.0, 0.0, 1.0])
>>> y = evaluate(bij, x)
Array([-0.2,  0. ,  1. ], dtype=float32)
alpha: ArrayLike dataclass-field
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__setattr__(self, name, value)

Implement setattr(self, name, value).

__init__(self, alpha: ArrayLike = 0.2)
__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).

fenbux.bijector.Reshape

Reshape Bijector

Parameters:

Name Type Description Default
out_shape collections.abc.Sequence[int]

The output shape.

(-1,)
in_shape collections.abc.Sequence[int]

The input shape.

(-1,)

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijector import Reshape, evaluate
>>> bij = Reshape(out_shape=(3, 2), in_shape=(2, 3))
>>> x = jnp.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
>>> y = evaluate(bij, x)
out_shape: collections.abc.Sequence[int] dataclass-field
in_shape: collections.abc.Sequence[int] dataclass-field
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__setattr__(self, name, value)

Implement setattr(self, name, value).

__init__(self, out_shape: collections.abc.Sequence[int] = (-1,), in_shape: collections.abc.Sequence[int] = (-1,))
__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).

fenbux.bijector.Chain

Chain Bijector

Parameters:

Name Type Description Default
bijectors Sequence[Bijector]

Sequence of bijectors to chain together.

required

Examples:

>>> import jax.numpy as jnp
>>> from fenbux.bijector import Chain, Exp, Log, Scale, Shift, evaluate
>>> bij = Chain([Exp(), Scale(2.0), Log(), Shift(1.0)])
>>> x = jnp.array([1.0, 2.0, 3.0])
>>> y = evaluate(bij, x)
bijectors: Sequence[fenbux.bijector._Bijector] dataclass-field
__class__
__signature__ property readonly
__base__
__base__

Metaclass for defining Abstract Base Classes (ABCs).

Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()).

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__new__(/, mcls, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__new__(/, mcs, name, bases, namespace, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

__call__(cls, *args, **kwargs)

Call self as a function.

__instancecheck__(cls, instance)

Override for isinstance(instance, cls).

__subclasscheck__(cls, subclass)

Override for issubclass(subclass, cls).

__new__(/, mcs, name, bases, dict_, strict: bool = False, abstract: bool = False, **kwargs) staticmethod

Create and return a new object. See help(type) for accurate signature.

register(cls, subclass)

Register a virtual subclass of an ABC.

Returns the subclass, to allow usage as a class decorator.

__call__(cls, *args, **kwargs)

Call self as a function.

__getattribute__(cls, item)

Return getattr(self, name).

__setattr__(cls, item, value)

Implement setattr(self, name, value).

__delattr__(self, name)

Implement delattr(self, name).

__setattr__(self, name, value)

Implement setattr(self, name, value).

__init__(self, bijectors: Sequence[fenbux.bijector._Bijector])
__hash__(self)

Return hash(self).

__eq__(self, other) -> Union[bool, numpy.bool_, Array]

Return self==value.

__repr__(self)

Return repr(self).