From 3bcc60c479e52c00ff42f9afc9d601d24b60830a Mon Sep 17 00:00:00 2001 From: jajupmochi Date: Wed, 29 Apr 2020 10:42:57 +0200 Subject: [PATCH] Fix a bug in increasing orders in MGE. --- gklearn/ged/median/median_graph_estimator.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gklearn/ged/median/median_graph_estimator.py b/gklearn/ged/median/median_graph_estimator.py index b5a829c..114c312 100644 --- a/gklearn/ged/median/median_graph_estimator.py +++ b/gklearn/ged/median/median_graph_estimator.py @@ -1115,7 +1115,12 @@ class MedianGraphEstimator(object): # @todo: differ dummy_node from undifined no continue for label in median_labels: weights[label_id] = min(weights[label_id], self.__ged_env.get_node_rel_cost(dict(label), dict(node_labels[label_id]))) - selected_label_id = urng.choice(range(0, len(weights)), size=1, p=np.array(weights) / np.sum(weights))[0] # for c++ test: xxx[iii] + sum_weight = np.sum(weights) + if sum_weight == 0: + p = np.array([1 / len(weights)] * len(weights)) + else: + p = np.array(weights) / np.sum(weights) + selected_label_id = urng.choice(range(0, len(weights)), size=1, p=p)[0] # for c++ test: xxx[iii] # iii += 1 for c++ test median_labels.append(node_labels[selected_label_id]) already_selected[selected_label_id] = True