from gPy.Models import BN class myBN(BN): def forward_inference(self): marginals = dict() for v in self.topological_order(): marginals[v] = self[v] for c in self.parents(v): marginals[v] *= marginals[c] marginals[v].marginalise_away([c]) return marginals