Skip to content

Commit 181d7e0

Browse files
author
Salman Naqvi
committed
Fix to GeneralizedProximalGradient so that its logic matches that of ProximalGradient when there's only 1 Proximal Operator g_i
1 parent e7c5bb8 commit 181d7e0

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

pyproximal/optimization/primal.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ def ProximalGradient(proxf, proxg, x0, tau=None, beta=0.5,
218218
'niterback = %d\tacceleration = %s\n' % (type(proxf), type(proxg),
219219
'Adaptive' if tau is None else str(tau), beta,
220220
epsg_print, niter, niterback, acceleration))
221-
head = ' Itn x[0] f g J=f+eps*g'
221+
head = ' Itn x[0] f g J=f+eps*g tau'
222222
print(head)
223223

224224
backtracking = False
@@ -267,7 +267,8 @@ def ProximalGradient(proxf, proxg, x0, tau=None, beta=0.5,
267267
msg = '%6g %12.5e %10.3e %10.3e %10.3e' % \
268268
(iiter + 1, np.real(to_numpy(x[0])) if x.ndim == 1 else np.real(to_numpy(x[0, 0])),
269269
pf, pg[0] if epsg_print == 'Multi' else pg,
270-
pf + np.sum(epsg * pg))
270+
pf + np.sum(epsg * pg),
271+
tau)
271272
print(msg)
272273
if show:
273274
print('\nTotal time (s) = %.2f' % (time.time() - tstart))
@@ -401,8 +402,8 @@ def GeneralizedProximalGradient(proxfs, proxgs, x0, tau=None,
401402
sol = np.zeros_like(x)
402403
for i, proxg in enumerate(proxgs):
403404
tmp = 2 * y - zs[i] - tau * grad
404-
tmp[:] = proxg.prox(tmp, tau *len(proxgs) )
405-
zs[i] += epsg * (tmp - y)
405+
tmp[:] = proxg.prox(tmp, epsg *tau *len(proxgs) )
406+
zs[i] += (tmp - y)
406407
sol += zs[i] / len(proxgs)
407408
x[:] = sol.copy()
408409

0 commit comments

Comments
 (0)