Skip to content

Commit 6dfa051

Browse files
Julien RousselJulien Roussel
authored andcommitted
long EM/RPCA operations wrapped with tqdm
1 parent ac31408 commit 6dfa051

File tree

5 files changed

+17
-4
lines changed

5 files changed

+17
-4
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ statsmodels = ">= 0.14.0"
4545
typed-ast = { version = "*", optional = true }
4646
category-encoders = "^2.6.3"
4747
dcor = ">= 0.6"
48+
tqdm = "^0.0.1"
4849

4950
[tool.poetry.group.torch.dependencies]
5051
torch = "< 2.5"

qolmat/imputations/em_sampler.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from scipy import optimize as spo
1212
from sklearn import utils as sku
1313
from sklearn.base import BaseEstimator, TransformerMixin
14+
from tqdm import tqdm
1415

1516
from qolmat.utils import utils
1617
from qolmat.utils.utils import RandomSetting
@@ -433,7 +434,9 @@ def fit_X(self, X: NDArray) -> None:
433434

434435
X = self._maximize_likelihood(X_imp, mask_na)
435436

436-
for iter_em in range(self.max_iter_em):
437+
for iter_em in tqdm(
438+
range(self.max_iter_em), desc="EM parameters estimation"
439+
):
437440
X = self._sample_ou(X, mask_na)
438441

439442
self.combine_parameters()

qolmat/imputations/rpca/rpca_noisy.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from scipy.sparse import dok_matrix, identity
1212
from scipy.sparse.linalg import spsolve
1313
from sklearn import utils as sku
14+
from tqdm import tqdm
1415

1516
from qolmat.imputations.rpca import rpca_utils
1617
from qolmat.imputations.rpca.rpca import RPCA
@@ -311,7 +312,9 @@ def minimise_loss(
311312
Ir = np.eye(rank)
312313
In = identity(n_rows)
313314

314-
for _ in range(max_iterations):
315+
for _ in tqdm(
316+
range(max_iterations), desc="Noisy RPCA loss minimization"
317+
):
315318
M_temp = M.copy()
316319
A_temp = A.copy()
317320
L_temp = L.copy()

qolmat/imputations/rpca/rpca_pcp.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import numpy as np
99
from numpy.typing import NDArray
1010
from sklearn import utils as sku
11+
from tqdm import tqdm
1112

1213
from qolmat.imputations.rpca import rpca_utils
1314
from qolmat.imputations.rpca.rpca import RPCA
@@ -125,7 +126,9 @@ def decompose(self, D: NDArray, Omega: NDArray) -> Tuple[NDArray, NDArray]:
125126
errors: NDArray = np.full((self.max_iterations,), fill_value=np.nan)
126127

127128
M: NDArray = D - A
128-
for iteration in range(self.max_iterations):
129+
for iteration in tqdm(
130+
range(self.max_iterations), desc="RPCA PCP decomposition"
131+
):
129132
M = rpca_utils.svd_thresholding(D - A + Y / mu, 1 / mu)
130133
A = rpca_utils.soft_thresholding(D - M + Y / mu, lam / mu)
131134
A[~Omega] = (D - M)[~Omega]

qolmat/imputations/softimpute.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from numpy.typing import NDArray
1111
from sklearn import utils as sku
1212
from sklearn.base import BaseEstimator, TransformerMixin
13+
from tqdm import tqdm
1314

1415
from qolmat.imputations.rpca import rpca_utils
1516
from qolmat.utils import utils
@@ -146,7 +147,9 @@ def decompose(self, X: NDArray, Omega: NDArray) -> Tuple[NDArray, NDArray]:
146147
B = V * D
147148
M = A @ B.T
148149
cost_start = SoftImpute.cost_function(X, M, A, Omega, tau)
149-
for iter_ in range(self.max_iterations):
150+
for iter_ in tqdm(
151+
range(self.max_iterations), desc="Soft Impute decomposition"
152+
):
150153
U_old = U
151154
V_old = V
152155
D_old = D

0 commit comments

Comments
 (0)