Chain Bijector¤
distreqx.bijectors.Chain(distreqx.bijectors.AbstractFwdLogDetJacBijector, distreqx.bijectors.AbstractInvLogDetJacBijector)
¤
Composition of a sequence of bijectors into a single bijector.
Bijectors are composable: if \(f\) and \(g\) are bijectors, then \(g \circ f\) is also a bijector. Given a sequence \([f_1, \ldots, f_N]\), this class implements \(f_N \circ \cdots \circ f_1\).
Bijectors are applied in reverse order
Given a sequence [f, g], the Chain bijector computes \(f(g(x))\), not
\(g(f(x))\). This matches the mathematical convention for function
composition but may be counterintuitive when building layers sequentially.
Example
layers = []
layers.append(f)
layers.append(g)
bijector = distreqx.Chain(layers)
y = bijector.forward(x) # y = f(g(x))
__init__(bijectors: Sequence)
¤
Initializes a Chain bijector.
Arguments:
bijectors: a sequence of bijectors to be composed into one. Each bijector can be a distreqx bijector or a callable to be wrapped byLambda. The sequence must contain at least one bijector.