def get_edge_posteriors(self,seq): nr_states = self.nr_states node_potentials,edge_potentials = self.build_potentials(seq) forward,backward = forward_backward(node_potentials,edge_potentials) H,N = forward.shape likelihood = np.sum(forward[:,N-1]) return self.get_edge_posteriors_aux(seq,forward,backward,node_potentials,edge_potentials,likelihood)
def get_posteriors(self,seq): forward,backward = forward_backward(seq) #self.sanity_check_fb(forward,backward) H,N = forward.shape likelihood = np.sum(forward[:,N-1]) node_posteriors = self.get_node_posteriors_aux(seq,forward,backward,likelihood) edge_posteriors = self.get_edge_posteriors_aux(seq,forward,backward,likelihood) return [node_posteriors,edge_posteriors],likelihood
def get_posteriors(self,seq): nr_states = self.nr_states node_potentials,edge_potentials = self.build_potentials(seq) forward,backward = forward_backward(node_potentials,edge_potentials) #self.sanity_check_fb(forward,backward) H,N = forward.shape likelihood = np.sum(forward[:,N-1]) node_posteriors = self.get_node_posteriors_aux(seq,forward,backward,node_potentials,edge_potentials,likelihood) edge_posteriors = self.get_edge_posteriors_aux(seq,forward,backward,node_potentials,edge_potentials,likelihood) return [node_posteriors,edge_posteriors],likelihood
def forward_backward(self,seq): node_potentials,edge_potentials = self.build_potentials(seq) forward,backward = forward_backward(node_potentials,edge_potentials) sanity_check_forward_backward(forward,backward) return forward,backward