Skip to content

Commit fb467a1

Browse files
authored
Add maxiter option for CMTF (#25)
1 parent f9ce1f3 commit fb467a1

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

tensorpack/cmtf.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ def perform_CP(tOrig, r=6, tol=1e-6):
245245
return tFac
246246

247247

248-
def perform_CMTF(tOrig, mOrig=None, r=9, tol=1e-6):
248+
def perform_CMTF(tOrig, mOrig=None, r=9, tol=1e-6, maxiter=50):
249249
""" Perform CMTF decomposition. """
250250
assert tOrig.dtype == float
251251
if mOrig is not None:
@@ -260,9 +260,9 @@ def perform_CMTF(tOrig, mOrig=None, r=9, tol=1e-6):
260260
# Precalculate the missingness patterns
261261
uniqueInfo = np.unique(np.isfinite(unfolded.T), axis=1, return_inverse=True)
262262

263-
for _ in range(40):
263+
for _ in range(maxiter):
264264
tensor = np.nan_to_num(tOrig) + tl.cp_to_tensor(tFac) * np.isnan(tOrig)
265-
tFac = parafac(tensor, r, 200, init=tFac, verbose=False, fixed_modes=[0], mask=np.isfinite(tOrig))
265+
tFac = parafac(tensor, r, 200, init=tFac, verbose=False, fixed_modes=[0], mask=np.isfinite(tOrig), linesearch=True, tol=1e-9)
266266

267267
# Solve for the glycan matrix fit
268268
tFac.mFactor = np.linalg.lstsq(tFac.factors[0][missingM, :], mOrig[missingM, :], rcond=-1)[0].T

0 commit comments

Comments
 (0)