def _contruct_ilang_model(self): self.ilang_model = ModelRigidSSD('RigidSSD') self.graph = ProbabilisticGraphicalModel(['target','source','transformation']) self.graph.set_nodes_given(['target','source'],True) self.graph.set_node_value('source',self.source.get_data()) self.graph.set_node_value('target',self.target.get_data()) self.graph.set_node_value('transformation',numpy.zeros((1,6))) self.graph.add_dependence(self.ilang_model,{'target':'target','source':'source','transformation':'transformation'}) self.sampler = Sampler(self.graph)
def __make_graph(self): self.ilang_model = SSD_ilang() # The following is an alternative use of ilang models: define the log_p and gradient functions here in order to have access to # the local variables. self.ilang_model.log_conditional_probability_transformation = self.__P self.ilang_model.log_conditional_probability_gradient_transformation = self.__G self.ilang_graph = ProbabilisticGraphicalModel( ['source', 'target', 'transformation', 'sigma']) self.ilang_graph.set_nodes_given(['sigma', 'source', 'target'], True) self.ilang_graph.add_dependence( self.ilang_model, { 'source': 'source', 'target': 'target', 'sigma': 'sigma', 'transformation': 'transformation' }) self.ilang_sampler = Sampler(self.ilang_graph)
def __make_graph(self): self.ilang_graph = ProbabilisticGraphicalModel() for i in range(len(self.__images)): self.ilang_graph.add_node('im_%d' % i) self.ilang_graph.set_nodes_given([ 'im_%d' % i, ], True) for i in range(len(self.__images) - 1): self.ilang_graph.add_nodes(['sigma_%d' % i, 'T_%d' % i]) self.ilang_graph.set_nodes_given([ 'sigma_%d' % i, ], True) model = SSD_ilang('SSD_%d' % i) self.ilang_graph.add_dependence( model, { 'sigma': 'sigma_%d' % i, 'transformation': 'T_%d' % i, 'source': 'im_%d' % i, 'target': 'im_%d' % (i + 1) }) self.ilang_sampler = Sampler(self.ilang_graph)