From 8f5768f597f8177f842a55be19349e5b76668f96 Mon Sep 17 00:00:00 2001 From: Guillaume Levasseur Date: Tue, 15 Sep 2020 18:17:39 +0200 Subject: [PATCH] fix: AFHMM+SAC: add safeguard for when the optimizer does not find any constraint and returns None. Fixes: https://github.com/nilmtk/nilmtk-contrib/issues/40 --- nilmtk_contrib/disaggregate/afhmm_sac.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nilmtk_contrib/disaggregate/afhmm_sac.py b/nilmtk_contrib/disaggregate/afhmm_sac.py index 237064b..56ea73e 100644 --- a/nilmtk_contrib/disaggregate/afhmm_sac.py +++ b/nilmtk_contrib/disaggregate/afhmm_sac.py @@ -256,7 +256,11 @@ def disaggregate_thread(self, test_mains,index,d): prob = cvx.Problem(expression, constraints) prob.solve(solver=cvx.SCS,verbose=False, warm_start=True) - s_ = [i.value for i in cvx_state_vectors] + s_ = [ + np.zeros((len(test_mains), self.default_num_states)) if i.value is None + else i.value + for i in cvx_state_vectors + ] prediction_dict = {} for appliance_id in range(self.num_appliances): @@ -302,4 +306,4 @@ def disaggregate_chunk(self, test_mains_list): return predictions_lst - \ No newline at end of file +