aeppl.dists.switching_process(comp_rvs, states)[source]#

Construct a switching process over arbitrary univariate mixtures and a state sequence.

This simply constructs a graph of the following form:

at.stack(comp_rvs)[states, *idx]

where idx makes sure that states selects mixture components along all the other axes.

  • comp_rvs (Sequence[TensorVariable]) – A list containing MeasurableVariable objects for each mixture component.

  • states (TensorVariable) – The hidden state sequence. It should have a number of states equal to the size of comp_dists.