def __init__(self, epsilon=<NUM_LIT>, eta=<NUM_LIT:1.>, delta=<NUM_LIT:1.>, always_reset=False, max_iters=np.inf, ep_mode="<STR_LIT>", parallel_updates=False, loading=False):
super(EPBase, self).__init__()<EOL>self.always_reset = always_reset<EOL>self.epsilon, self.eta, self.delta, self.max_iters = epsilon, eta, delta, max_iters<EOL>self.ep_mode = ep_mode<EOL>self.parallel_updates = parallel_updates<EOL>self.loading = loading<EOL>self.reset()<EOL>
The expectation-propagation algorithm.
For nomenclature see Rasmussen & Williams 2006.

:param epsilon: Convergence criterion, maximum squared difference allowed between mean updates to stop iterations (float)
:type epsilon: float
:param eta: parameter for fractional EP updates.
:type eta: float64
:param delta: damping EP updates factor.
:type delta: float64
:param always_reset: setting to always reset the approximation at the beginning of every inference call.
:type always_reest: boolean
:max_iters: int
:ep_mode: string. It can be "nested" (EP is run every time the Hyperparameters change) or "alternated" (It runs EP at the beginning and then optimize the Hyperparameters).
:parallel_updates: boolean. If true, updates of the parameters of the sites in parallel
:loading: boolean. If True, prevents the EP parameters to change. Hack used when loading a serialized model