Skip to content

Commit 1c2f5db

Browse files
committed
Fix SNMF/L to work with fixed initialization
1 parent dd4d9a9 commit 1c2f5db

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

nimfa/methods/factorization/snmf.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,16 +170,14 @@ def factorize(self):
170170
171171
Return fitted factorization model.
172172
"""
173-
174-
175173
for run in range(self.n_run):
174+
self.W, self.H = self.seed.initialize(self.V, self.rank, self.options)
176175
# in version SNMF/L, V is transposed while W and H are swapped and
177176
# transposed.
178177
if self.version == 'l':
179178
self.V = self.V.T
180-
181-
self.W, self.H = self.seed.initialize(
182-
self.V, self.rank, self.options)
179+
self.W, self.H = self.H.T, self.W.T
180+
183181
if sp.isspmatrix(self.W):
184182
self.W = self.W.tolil()
185183
if sp.isspmatrix(self.H):
@@ -222,7 +220,7 @@ def factorize(self):
222220
self.W = self.W.tocsr()
223221
if sp.isspmatrix(self.H):
224222
self.H = self.H.tocsr()
225-
# transpose and swap the roles back if SNMF/L
223+
# transpose and swap factors if SNMF/L
226224
if self.version == 'l':
227225
self.V = self.V.T
228226
self.W, self.H = self.H.T, self.W.T

nimfa/methods/seeding/fixed.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def initialize(self, V, rank, options):
4949
if self.idx == 0:
5050
return self.W, self.H
5151
else:
52-
self.W, getattr(self, 'H' + str(self.idx))
52+
return self.W, getattr(self, 'H' + str(self.idx))
5353

5454
def __repr__(self):
5555
return "fixed.Fixed()"

0 commit comments

Comments
 (0)