Convolutional Dictionary Learning

This example demonstrates the use of dictlrn.cbpdndl.ConvBPDNDictLearn for learning a 3D convolutional dictionary from video data. The dictionary learning algorithm is based on the ADMM consensus dictionary update.

from __future__ import print_function
from builtins import input

import pyfftw   # See https://github.com/pyFFTW/pyFFTW/issues/40
import numpy as np
from scipy.ndimage import zoom
import imageio

from sporco.dictlrn import cbpdndl
from sporco import util
from sporco import signal
from sporco import plot
plot.config_notebook_plotting()

Construct 3D training array from video data

reader = imageio.get_reader('imageio:cockatoo.mp4')
frmlst = []
for i, frm in enumerate(reader):
    if i >= 250:
        frm = zoom(signal.rgb2gray(frm.astype(np.float32)/255.0), 0.25)
        frmlst.append(frm[20:-20, 70:-70])
vid = np.stack(frmlst, axis=2)

Highpass filter video frames.

npd = 16
fltlmbd = 10
vl, vh = signal.tikhonov_filter(vid, fltlmbd, npd)

Construct initial dictionary.

np.random.seed(12345)
D0 = np.random.randn(5, 5, 3, 25)

Set regularization parameter and options for dictionary learning solver.

lmbda = 0.1
opt = cbpdndl.ConvBPDNDictLearn.Options({'Verbose': True, 'MaxMainIter': 200,
                'CBPDN': {'rho': 5e1*lmbda, 'AutoRho': {'Enabled': True}},
                'CCMOD': {'rho': 1e2, 'AutoRho': {'Enabled': True}}},
                dmethod='cns')

Create solver object and solve.

d = cbpdndl.ConvBPDNDictLearn(D0, vh, lmbda, opt, dimK=0, dimN=3)
D1 = d.solve()
print("ConvBPDNDictLearn solve time: %.2fs" % d.timer.elapsed('solve'))
Itn   Fnc       DFid      ℓ1        Cnstr     r_X       s_X       ρ_X       r_D       s_D       ρ_D
--------------------------------------------------------------------------------------------------------
   0  1.81e+03  2.65e+01  1.79e+04  6.58e-07  9.70e-01  8.66e-02  5.00e+00  2.32e-01  1.75e-01  1.00e+02
   1  1.28e+03  1.21e+02  1.16e+04  5.67e-07  8.14e-01  2.16e-01  5.00e+00  2.54e-01  2.08e-01  1.00e+02
   2  1.12e+03  1.46e+02  9.70e+03  4.41e-07  4.36e-01  2.24e-01  5.00e+00  2.43e-01  1.52e-01  1.00e+02
   3  1.05e+03  1.39e+02  9.06e+03  4.52e-07  3.17e-01  1.91e-01  5.00e+00  2.07e-01  9.86e-02  1.00e+02
   4  9.57e+02  1.30e+02  8.26e+03  4.31e-07  2.61e-01  1.54e-01  5.00e+00  1.72e-01  8.04e-02  1.00e+02
   5  8.33e+02  1.27e+02  7.06e+03  4.89e-07  2.15e-01  1.25e-01  5.00e+00  1.40e-01  7.30e-02  1.00e+02
   6  7.46e+02  1.28e+02  6.18e+03  5.15e-07  1.81e-01  9.93e-02  5.00e+00  1.16e-01  7.15e-02  1.00e+02
   7  6.91e+02  1.29e+02  5.62e+03  4.69e-07  1.50e-01  7.95e-02  5.00e+00  9.41e-02  6.44e-02  1.00e+02
   8  6.52e+02  1.29e+02  5.22e+03  3.80e-07  1.26e-01  6.82e-02  5.00e+00  7.88e-02  5.81e-02  1.00e+02
   9  6.27e+02  1.29e+02  4.98e+03  4.66e-07  1.08e-01  6.13e-02  5.00e+00  6.70e-02  5.35e-02  1.00e+02
  10  6.05e+02  1.28e+02  4.77e+03  4.82e-07  9.41e-02  5.47e-02  5.00e+00  5.68e-02  5.05e-02  1.00e+02
  11  5.92e+02  1.27e+02  4.65e+03  4.98e-07  8.37e-02  4.90e-02  5.00e+00  4.91e-02  4.77e-02  1.00e+02
  12  5.72e+02  1.25e+02  4.46e+03  4.85e-07  7.46e-02  4.49e-02  5.00e+00  4.33e-02  4.52e-02  1.00e+02
  13  5.54e+02  1.24e+02  4.30e+03  5.24e-07  6.74e-02  4.15e-02  5.00e+00  3.88e-02  4.27e-02  1.00e+02
  14  5.37e+02  1.23e+02  4.14e+03  6.40e-07  6.11e-02  3.85e-02  5.00e+00  3.49e-02  4.07e-02  1.00e+02
  15  5.26e+02  1.23e+02  4.03e+03  4.56e-07  5.62e-02  3.57e-02  5.00e+00  3.19e-02  3.87e-02  1.00e+02
  16  5.15e+02  1.22e+02  3.93e+03  4.59e-07  5.18e-02  3.32e-02  5.00e+00  2.89e-02  3.69e-02  1.00e+02
  17  5.07e+02  1.21e+02  3.86e+03  4.83e-07  4.83e-02  3.14e-02  5.00e+00  2.68e-02  3.52e-02  1.00e+02
  18  4.99e+02  1.21e+02  3.78e+03  4.72e-07  4.51e-02  2.98e-02  5.00e+00  2.49e-02  3.37e-02  1.00e+02
  19  4.92e+02  1.20e+02  3.72e+03  5.05e-07  4.26e-02  2.83e-02  5.00e+00  2.33e-02  3.21e-02  1.00e+02
  20  4.84e+02  1.19e+02  3.65e+03  3.56e-07  4.01e-02  2.69e-02  5.00e+00  2.18e-02  3.07e-02  1.00e+02
  21  4.78e+02  1.19e+02  3.59e+03  4.07e-07  3.81e-02  2.56e-02  5.00e+00  2.06e-02  2.94e-02  1.00e+02
  22  4.71e+02  1.18e+02  3.53e+03  4.36e-07  3.61e-02  2.44e-02  5.00e+00  1.95e-02  2.81e-02  1.00e+02
  23  4.66e+02  1.18e+02  3.48e+03  4.46e-07  3.44e-02  2.33e-02  5.00e+00  1.85e-02  2.69e-02  1.00e+02
  24  4.61e+02  1.18e+02  3.44e+03  6.63e-07  3.27e-02  2.23e-02  5.00e+00  1.76e-02  2.57e-02  1.00e+02
  25  4.57e+02  1.17e+02  3.40e+03  5.37e-07  3.13e-02  2.14e-02  5.00e+00  1.67e-02  2.47e-02  1.00e+02
  26  4.53e+02  1.17e+02  3.36e+03  5.36e-07  2.98e-02  2.06e-02  5.00e+00  1.60e-02  2.37e-02  1.00e+02
  27  4.49e+02  1.16e+02  3.33e+03  5.55e-07  2.85e-02  1.98e-02  5.00e+00  1.53e-02  2.28e-02  1.00e+02
  28  4.45e+02  1.16e+02  3.29e+03  4.10e-07  2.73e-02  1.91e-02  5.00e+00  1.46e-02  2.19e-02  1.00e+02
  29  4.42e+02  1.16e+02  3.26e+03  4.81e-07  2.62e-02  1.85e-02  5.00e+00  1.40e-02  2.11e-02  1.00e+02
  30  4.38e+02  1.16e+02  3.23e+03  4.57e-07  2.51e-02  1.78e-02  5.00e+00  1.34e-02  2.04e-02  1.00e+02
  31  4.35e+02  1.15e+02  3.20e+03  4.38e-07  2.41e-02  1.72e-02  5.00e+00  1.29e-02  1.97e-02  1.00e+02
  32  4.32e+02  1.15e+02  3.17e+03  4.12e-07  2.32e-02  1.67e-02  5.00e+00  1.23e-02  1.90e-02  1.00e+02
  33  4.29e+02  1.15e+02  3.15e+03  4.41e-07  2.23e-02  1.61e-02  5.00e+00  1.19e-02  1.84e-02  1.00e+02
  34  4.27e+02  1.15e+02  3.12e+03  4.55e-07  2.14e-02  1.55e-02  5.00e+00  1.14e-02  1.78e-02  1.00e+02
  35  4.24e+02  1.14e+02  3.10e+03  4.78e-07  2.06e-02  1.51e-02  5.00e+00  1.10e-02  1.72e-02  1.00e+02
  36  4.22e+02  1.14e+02  3.08e+03  4.47e-07  1.99e-02  1.46e-02  5.00e+00  1.06e-02  1.67e-02  1.00e+02
  37  4.19e+02  1.14e+02  3.06e+03  4.05e-07  1.92e-02  1.42e-02  5.00e+00  1.02e-02  1.62e-02  1.00e+02
  38  4.17e+02  1.14e+02  3.04e+03  5.72e-07  1.85e-02  1.38e-02  5.00e+00  9.91e-03  1.57e-02  1.00e+02
  39  4.15e+02  1.14e+02  3.02e+03  4.77e-07  1.79e-02  1.34e-02  5.00e+00  9.60e-03  1.53e-02  1.00e+02
  40  4.14e+02  1.13e+02  3.00e+03  4.22e-07  1.74e-02  1.31e-02  5.00e+00  9.31e-03  1.49e-02  1.00e+02
  41  4.12e+02  1.13e+02  2.99e+03  4.58e-07  1.68e-02  1.27e-02  5.00e+00  9.05e-03  1.45e-02  1.00e+02
  42  4.10e+02  1.13e+02  2.97e+03  6.47e-07  1.63e-02  1.24e-02  5.00e+00  8.78e-03  1.41e-02  1.00e+02
  43  4.09e+02  1.13e+02  2.96e+03  4.38e-07  1.59e-02  1.20e-02  5.00e+00  8.54e-03  1.38e-02  1.00e+02
  44  4.07e+02  1.13e+02  2.95e+03  4.22e-07  1.54e-02  1.17e-02  5.00e+00  8.30e-03  1.34e-02  1.00e+02
  45  4.06e+02  1.13e+02  2.93e+03  5.59e-07  1.50e-02  1.15e-02  5.00e+00  8.08e-03  1.31e-02  1.00e+02
  46  4.05e+02  1.12e+02  2.92e+03  4.07e-07  1.46e-02  1.12e-02  5.00e+00  7.88e-03  1.28e-02  1.00e+02
  47  4.03e+02  1.12e+02  2.91e+03  4.27e-07  1.42e-02  1.09e-02  5.00e+00  7.68e-03  1.25e-02  1.00e+02
  48  4.02e+02  1.12e+02  2.90e+03  4.77e-07  1.39e-02  1.07e-02  5.00e+00  7.49e-03  1.23e-02  1.00e+02
  49  4.01e+02  1.12e+02  2.89e+03  6.24e-07  1.35e-02  1.04e-02  5.00e+00  7.31e-03  1.20e-02  1.00e+02
  50  4.00e+02  1.12e+02  2.88e+03  4.50e-07  1.32e-02  1.02e-02  5.00e+00  7.15e-03  1.17e-02  1.00e+02
  51  3.99e+02  1.12e+02  2.87e+03  5.01e-07  1.29e-02  1.00e-02  5.00e+00  6.98e-03  1.15e-02  1.00e+02
  52  3.98e+02  1.12e+02  2.86e+03  5.58e-07  1.26e-02  9.80e-03  5.00e+00  6.83e-03  1.13e-02  1.00e+02
  53  3.97e+02  1.12e+02  2.85e+03  4.42e-07  1.23e-02  9.61e-03  5.00e+00  6.69e-03  1.11e-02  1.00e+02
  54  3.96e+02  1.12e+02  2.84e+03  5.76e-07  1.21e-02  9.43e-03  5.00e+00  6.56e-03  1.09e-02  1.00e+02
  55  3.95e+02  1.12e+02  2.83e+03  4.19e-07  1.18e-02  9.26e-03  5.00e+00  6.44e-03  1.07e-02  1.00e+02
  56  3.94e+02  1.11e+02  2.83e+03  5.04e-07  1.16e-02  9.10e-03  5.00e+00  6.32e-03  1.05e-02  1.00e+02
  57  3.93e+02  1.11e+02  2.82e+03  4.42e-07  1.14e-02  8.94e-03  5.00e+00  6.20e-03  1.03e-02  1.00e+02
  58  3.93e+02  1.11e+02  2.81e+03  5.27e-07  1.12e-02  8.78e-03  5.00e+00  6.09e-03  1.01e-02  1.00e+02
  59  3.92e+02  1.11e+02  2.81e+03  4.72e-07  1.10e-02  8.64e-03  5.00e+00  5.99e-03  9.97e-03  1.00e+02
  60  3.91e+02  1.11e+02  2.80e+03  4.78e-07  1.08e-02  8.50e-03  5.00e+00  5.89e-03  9.80e-03  1.00e+02
  61  3.90e+02  1.11e+02  2.79e+03  5.22e-07  1.06e-02  8.36e-03  5.00e+00  5.79e-03  9.65e-03  1.00e+02
  62  3.90e+02  1.11e+02  2.79e+03  4.11e-07  1.05e-02  8.22e-03  5.00e+00  5.69e-03  9.49e-03  1.00e+02
  63  3.89e+02  1.11e+02  2.78e+03  4.77e-07  1.03e-02  8.09e-03  5.00e+00  5.61e-03  9.34e-03  1.00e+02
  64  3.89e+02  1.11e+02  2.78e+03  4.44e-07  1.02e-02  7.97e-03  5.00e+00  5.51e-03  9.20e-03  1.00e+02
  65  3.88e+02  1.11e+02  2.77e+03  5.57e-07  1.00e-02  7.85e-03  5.00e+00  5.44e-03  9.06e-03  1.00e+02
  66  3.87e+02  1.11e+02  2.77e+03  5.89e-07  9.86e-03  7.74e-03  5.00e+00  5.35e-03  8.93e-03  1.00e+02
  67  3.87e+02  1.11e+02  2.76e+03  5.05e-07  9.73e-03  7.63e-03  5.00e+00  5.28e-03  8.80e-03  1.00e+02
  68  3.86e+02  1.11e+02  2.76e+03  3.69e-07  9.60e-03  7.52e-03  5.00e+00  5.21e-03  8.67e-03  1.00e+02
  69  3.86e+02  1.11e+02  2.75e+03  5.43e-07  9.47e-03  7.41e-03  5.00e+00  5.13e-03  8.54e-03  1.00e+02
  70  3.85e+02  1.10e+02  2.75e+03  4.48e-07  9.35e-03  7.31e-03  5.00e+00  5.07e-03  8.42e-03  1.00e+02
  71  3.85e+02  1.10e+02  2.75e+03  4.18e-07  9.23e-03  7.22e-03  5.00e+00  5.00e-03  8.30e-03  1.00e+02
  72  3.85e+02  1.10e+02  2.74e+03  4.74e-07  9.12e-03  7.13e-03  5.00e+00  4.95e-03  8.18e-03  1.00e+02
  73  3.84e+02  1.10e+02  2.74e+03  4.25e-07  9.01e-03  7.05e-03  5.00e+00  4.88e-03  8.06e-03  1.00e+02
  74  3.84e+02  1.10e+02  2.73e+03  4.70e-07  8.91e-03  6.97e-03  5.00e+00  4.83e-03  7.94e-03  1.00e+02
  75  3.83e+02  1.10e+02  2.73e+03  4.88e-07  8.82e-03  6.89e-03  5.00e+00  4.77e-03  7.82e-03  1.00e+02
  76  3.83e+02  1.10e+02  2.73e+03  4.55e-07  8.72e-03  6.81e-03  5.00e+00  4.72e-03  7.71e-03  1.00e+02
  77  3.82e+02  1.10e+02  2.72e+03  4.89e-07  8.61e-03  6.74e-03  5.00e+00  4.66e-03  7.59e-03  1.00e+02
  78  3.82e+02  1.10e+02  2.72e+03  4.65e-07  8.51e-03  6.66e-03  5.00e+00  4.60e-03  7.47e-03  1.00e+02
  79  3.81e+02  1.10e+02  2.71e+03  4.91e-07  8.40e-03  6.57e-03  5.00e+00  4.54e-03  7.35e-03  1.00e+02
  80  3.81e+02  1.10e+02  2.71e+03  4.55e-07  8.28e-03  6.49e-03  5.00e+00  4.47e-03  7.23e-03  1.00e+02
  81  3.81e+02  1.10e+02  2.71e+03  4.97e-07  8.17e-03  6.41e-03  5.00e+00  4.41e-03  7.10e-03  1.00e+02
  82  3.80e+02  1.10e+02  2.70e+03  4.22e-07  8.06e-03  6.34e-03  5.00e+00  4.36e-03  6.98e-03  1.00e+02
  83  3.80e+02  1.10e+02  2.70e+03  4.05e-07  7.95e-03  6.27e-03  5.00e+00  4.30e-03  6.86e-03  1.00e+02
  84  3.79e+02  1.10e+02  2.70e+03  5.46e-07  7.84e-03  6.20e-03  5.00e+00  4.25e-03  6.74e-03  1.00e+02
  85  3.79e+02  1.10e+02  2.69e+03  5.53e-07  7.74e-03  6.13e-03  5.00e+00  4.19e-03  6.63e-03  1.00e+02
  86  3.78e+02  1.10e+02  2.69e+03  5.46e-07  7.63e-03  6.06e-03  5.00e+00  4.15e-03  6.53e-03  1.00e+02
  87  3.78e+02  1.10e+02  2.69e+03  4.79e-07  7.53e-03  5.99e-03  5.00e+00  4.09e-03  6.43e-03  1.00e+02
  88  3.78e+02  1.10e+02  2.68e+03  5.08e-07  7.44e-03  5.93e-03  5.00e+00  4.04e-03  6.33e-03  1.00e+02
  89  3.77e+02  1.09e+02  2.68e+03  4.89e-07  7.35e-03  5.86e-03  5.00e+00  4.00e-03  6.23e-03  1.00e+02
  90  3.77e+02  1.09e+02  2.68e+03  5.32e-07  7.27e-03  5.80e-03  5.00e+00  3.95e-03  6.14e-03  1.00e+02
  91  3.77e+02  1.09e+02  2.67e+03  3.63e-07  7.18e-03  5.74e-03  5.00e+00  3.91e-03  6.05e-03  1.00e+02
  92  3.76e+02  1.09e+02  2.67e+03  4.92e-07  7.10e-03  5.68e-03  5.00e+00  3.86e-03  5.96e-03  1.00e+02
  93  3.76e+02  1.09e+02  2.67e+03  4.87e-07  7.01e-03  5.62e-03  5.00e+00  3.82e-03  5.88e-03  1.00e+02
  94  3.76e+02  1.09e+02  2.67e+03  4.88e-07  6.93e-03  5.56e-03  5.00e+00  3.78e-03  5.80e-03  1.00e+02
  95  3.76e+02  1.09e+02  2.66e+03  5.03e-07  6.85e-03  5.51e-03  5.00e+00  3.74e-03  5.72e-03  1.00e+02
  96  3.75e+02  1.09e+02  2.66e+03  5.52e-07  6.77e-03  5.46e-03  5.00e+00  3.71e-03  5.64e-03  1.00e+02
  97  3.75e+02  1.09e+02  2.66e+03  3.23e-07  6.69e-03  5.40e-03  5.00e+00  3.66e-03  5.56e-03  1.00e+02
  98  3.75e+02  1.09e+02  2.66e+03  5.30e-07  6.61e-03  5.35e-03  5.00e+00  3.63e-03  5.49e-03  1.00e+02
  99  3.75e+02  1.09e+02  2.65e+03  4.07e-07  6.55e-03  5.30e-03  5.00e+00  3.59e-03  5.43e-03  1.00e+02
 100  3.74e+02  1.09e+02  2.65e+03  6.25e-07  6.48e-03  5.26e-03  5.00e+00  3.57e-03  5.37e-03  1.00e+02
 101  3.74e+02  1.09e+02  2.65e+03  5.88e-07  6.41e-03  5.20e-03  5.00e+00  3.53e-03  5.31e-03  1.00e+02
 102  3.74e+02  1.09e+02  2.65e+03  6.08e-07  6.35e-03  5.16e-03  5.00e+00  3.50e-03  5.25e-03  1.00e+02
 103  3.74e+02  1.09e+02  2.65e+03  4.62e-07  6.28e-03  5.11e-03  5.00e+00  3.46e-03  5.19e-03  1.00e+02
 104  3.73e+02  1.09e+02  2.64e+03  4.84e-07  6.22e-03  5.07e-03  5.00e+00  3.44e-03  5.14e-03  1.00e+02
 105  3.73e+02  1.09e+02  2.64e+03  5.07e-07  6.16e-03  5.04e-03  5.00e+00  3.41e-03  5.09e-03  1.00e+02
 106  3.73e+02  1.09e+02  2.64e+03  4.35e-07  6.10e-03  5.00e-03  5.00e+00  3.39e-03  5.04e-03  1.00e+02
 107  3.73e+02  1.09e+02  2.64e+03  4.08e-07  6.04e-03  4.96e-03  5.00e+00  3.36e-03  4.99e-03  1.00e+02
 108  3.72e+02  1.09e+02  2.64e+03  5.46e-07  5.99e-03  4.92e-03  5.00e+00  3.34e-03  4.95e-03  1.00e+02
 109  3.72e+02  1.09e+02  2.63e+03  4.59e-07  5.94e-03  4.89e-03  5.00e+00  3.32e-03  4.91e-03  1.00e+02
 110  3.72e+02  1.09e+02  2.63e+03  4.14e-07  5.89e-03  4.86e-03  5.00e+00  3.29e-03  4.87e-03  1.00e+02
 111  3.72e+02  1.09e+02  2.63e+03  5.40e-07  5.84e-03  4.83e-03  5.00e+00  3.27e-03  4.83e-03  1.00e+02
 112  3.72e+02  1.09e+02  2.63e+03  4.09e-07  5.80e-03  4.80e-03  5.00e+00  3.26e-03  4.80e-03  1.00e+02
 113  3.71e+02  1.09e+02  2.63e+03  4.52e-07  5.76e-03  4.78e-03  5.00e+00  3.24e-03  4.77e-03  1.00e+02
 114  3.71e+02  1.09e+02  2.63e+03  4.86e-07  5.72e-03  4.75e-03  5.00e+00  3.22e-03  4.74e-03  1.00e+02
 115  3.71e+02  1.09e+02  2.62e+03  4.96e-07  5.68e-03  4.73e-03  5.00e+00  3.20e-03  4.71e-03  1.00e+02
 116  3.71e+02  1.09e+02  2.62e+03  4.68e-07  5.64e-03  4.71e-03  5.00e+00  3.18e-03  4.68e-03  1.00e+02
 117  3.71e+02  1.09e+02  2.62e+03  4.79e-07  5.61e-03  4.69e-03  5.00e+00  3.17e-03  4.65e-03  1.00e+02
 118  3.71e+02  1.09e+02  2.62e+03  4.16e-07  5.57e-03  4.67e-03  5.00e+00  3.15e-03  4.63e-03  1.00e+02
 119  3.70e+02  1.09e+02  2.62e+03  4.54e-07  5.54e-03  4.65e-03  5.00e+00  3.14e-03  4.60e-03  1.00e+02
 120  3.70e+02  1.09e+02  2.62e+03  4.52e-07  5.50e-03  4.63e-03  5.00e+00  3.12e-03  4.58e-03  1.00e+02
 121  3.70e+02  1.09e+02  2.62e+03  4.01e-07  5.47e-03  4.60e-03  5.00e+00  3.10e-03  4.56e-03  1.00e+02
 122  3.70e+02  1.09e+02  2.61e+03  4.54e-07  5.44e-03  4.59e-03  5.00e+00  3.09e-03  4.53e-03  1.00e+02
 123  3.70e+02  1.09e+02  2.61e+03  3.88e-07  5.41e-03  4.57e-03  5.00e+00  3.07e-03  4.51e-03  1.00e+02
 124  3.70e+02  1.09e+02  2.61e+03  5.45e-07  5.38e-03  4.55e-03  5.00e+00  3.06e-03  4.49e-03  1.00e+02
 125  3.70e+02  1.09e+02  2.61e+03  6.10e-07  5.35e-03  4.53e-03  5.00e+00  3.04e-03  4.47e-03  1.00e+02
 126  3.69e+02  1.08e+02  2.61e+03  4.37e-07  5.32e-03  4.52e-03  5.00e+00  3.03e-03  4.46e-03  1.00e+02
 127  3.69e+02  1.08e+02  2.61e+03  5.14e-07  5.29e-03  4.49e-03  5.00e+00  3.01e-03  4.44e-03  1.00e+02
 128  3.69e+02  1.08e+02  2.61e+03  4.53e-07  5.26e-03  4.47e-03  5.00e+00  3.00e-03  4.42e-03  1.00e+02
 129  3.69e+02  1.08e+02  2.61e+03  4.55e-07  5.23e-03  4.45e-03  5.00e+00  2.98e-03  4.40e-03  1.00e+02
 130  3.69e+02  1.08e+02  2.61e+03  3.82e-07  5.21e-03  4.43e-03  5.00e+00  2.97e-03  4.38e-03  1.00e+02
 131  3.69e+02  1.08e+02  2.60e+03  5.70e-07  5.18e-03  4.41e-03  5.00e+00  2.96e-03  4.36e-03  1.00e+02
 132  3.69e+02  1.08e+02  2.60e+03  5.30e-07  5.15e-03  4.39e-03  5.00e+00  2.94e-03  4.34e-03  1.00e+02
 133  3.69e+02  1.08e+02  2.60e+03  4.03e-07  5.12e-03  4.37e-03  5.00e+00  2.92e-03  4.32e-03  1.00e+02
 134  3.68e+02  1.08e+02  2.60e+03  5.52e-07  5.09e-03  4.35e-03  5.00e+00  2.90e-03  4.30e-03  1.00e+02
 135  3.68e+02  1.08e+02  2.60e+03  3.62e-07  5.07e-03  4.32e-03  5.00e+00  2.88e-03  4.28e-03  1.00e+02
 136  3.68e+02  1.08e+02  2.60e+03  3.95e-07  5.03e-03  4.30e-03  5.00e+00  2.87e-03  4.26e-03  1.00e+02
 137  3.68e+02  1.08e+02  2.60e+03  4.60e-07  5.01e-03  4.28e-03  5.00e+00  2.85e-03  4.24e-03  1.00e+02
 138  3.68e+02  1.08e+02  2.60e+03  4.93e-07  4.97e-03  4.26e-03  5.00e+00  2.84e-03  4.22e-03  1.00e+02
 139  3.68e+02  1.08e+02  2.60e+03  4.49e-07  4.94e-03  4.23e-03  5.00e+00  2.81e-03  4.20e-03  1.00e+02
 140  3.68e+02  1.08e+02  2.59e+03  3.88e-07  4.91e-03  4.21e-03  5.00e+00  2.80e-03  4.18e-03  1.00e+02
 141  3.68e+02  1.08e+02  2.59e+03  4.32e-07  4.89e-03  4.19e-03  5.00e+00  2.78e-03  4.16e-03  1.00e+02
 142  3.67e+02  1.08e+02  2.59e+03  5.04e-07  4.86e-03  4.17e-03  5.00e+00  2.76e-03  4.14e-03  1.00e+02
 143  3.67e+02  1.08e+02  2.59e+03  4.20e-07  4.83e-03  4.14e-03  5.00e+00  2.74e-03  4.13e-03  1.00e+02
 144  3.67e+02  1.08e+02  2.59e+03  5.26e-07  4.80e-03  4.12e-03  5.00e+00  2.73e-03  4.11e-03  1.00e+02
 145  3.67e+02  1.08e+02  2.59e+03  5.24e-07  4.77e-03  4.09e-03  5.00e+00  2.71e-03  4.10e-03  1.00e+02
 146  3.67e+02  1.08e+02  2.59e+03  4.11e-07  4.75e-03  4.07e-03  5.00e+00  2.69e-03  4.09e-03  1.00e+02
 147  3.67e+02  1.08e+02  2.59e+03  4.78e-07  4.72e-03  4.04e-03  5.00e+00  2.68e-03  4.07e-03  1.00e+02
 148  3.67e+02  1.08e+02  2.59e+03  4.02e-07  4.69e-03  4.01e-03  5.00e+00  2.66e-03  4.05e-03  1.00e+02
 149  3.67e+02  1.08e+02  2.58e+03  4.28e-07  4.66e-03  3.98e-03  5.00e+00  2.64e-03  4.04e-03  1.00e+02
 150  3.66e+02  1.08e+02  2.58e+03  5.15e-07  4.64e-03  3.95e-03  5.00e+00  2.63e-03  4.02e-03  1.00e+02
 151  3.66e+02  1.08e+02  2.58e+03  5.85e-07  4.61e-03  3.92e-03  5.00e+00  2.61e-03  4.01e-03  1.00e+02
 152  3.66e+02  1.08e+02  2.58e+03  3.81e-07  4.58e-03  3.90e-03  5.00e+00  2.59e-03  3.99e-03  1.00e+02
 153  3.66e+02  1.08e+02  2.58e+03  5.31e-07  4.55e-03  3.87e-03  5.00e+00  2.57e-03  3.98e-03  1.00e+02
 154  3.66e+02  1.08e+02  2.58e+03  5.58e-07  4.53e-03  3.85e-03  5.00e+00  2.56e-03  3.97e-03  1.00e+02
 155  3.66e+02  1.08e+02  2.58e+03  4.54e-07  4.50e-03  3.82e-03  5.00e+00  2.54e-03  3.95e-03  1.00e+02
 156  3.66e+02  1.08e+02  2.58e+03  5.92e-07  4.48e-03  3.79e-03  5.00e+00  2.53e-03  3.94e-03  1.00e+02
 157  3.66e+02  1.08e+02  2.58e+03  5.20e-07  4.46e-03  3.77e-03  5.00e+00  2.52e-03  3.94e-03  1.00e+02
 158  3.66e+02  1.08e+02  2.58e+03  3.75e-07  4.44e-03  3.75e-03  5.00e+00  2.50e-03  3.93e-03  1.00e+02
 159  3.65e+02  1.08e+02  2.57e+03  4.31e-07  4.42e-03  3.73e-03  5.00e+00  2.49e-03  3.93e-03  1.00e+02
 160  3.65e+02  1.08e+02  2.57e+03  5.99e-07  4.40e-03  3.71e-03  5.00e+00  2.47e-03  3.92e-03  1.00e+02
 161  3.65e+02  1.08e+02  2.57e+03  4.64e-07  4.38e-03  3.70e-03  5.00e+00  2.47e-03  3.92e-03  1.00e+02
 162  3.65e+02  1.08e+02  2.57e+03  5.33e-07  4.36e-03  3.68e-03  5.00e+00  2.45e-03  3.92e-03  1.00e+02
 163  3.65e+02  1.08e+02  2.57e+03  5.05e-07  4.35e-03  3.66e-03  5.00e+00  2.45e-03  3.92e-03  1.00e+02
 164  3.65e+02  1.08e+02  2.57e+03  5.16e-07  4.33e-03  3.64e-03  5.00e+00  2.43e-03  3.92e-03  1.00e+02
 165  3.65e+02  1.08e+02  2.57e+03  4.45e-07  4.32e-03  3.62e-03  5.00e+00  2.43e-03  3.92e-03  1.00e+02
 166  3.65e+02  1.08e+02  2.57e+03  3.89e-07  4.30e-03  3.60e-03  5.00e+00  2.41e-03  3.91e-03  1.00e+02
 167  3.65e+02  1.08e+02  2.57e+03  5.27e-07  4.28e-03  3.58e-03  5.00e+00  2.40e-03  3.91e-03  1.00e+02
 168  3.64e+02  1.08e+02  2.57e+03  5.59e-07  4.26e-03  3.57e-03  5.00e+00  2.39e-03  3.91e-03  1.00e+02
 169  3.64e+02  1.08e+02  2.56e+03  4.50e-07  4.25e-03  3.55e-03  5.00e+00  2.38e-03  3.90e-03  1.00e+02
 170  3.64e+02  1.08e+02  2.56e+03  5.15e-07  4.23e-03  3.53e-03  5.00e+00  2.37e-03  3.90e-03  1.00e+02
 171  3.64e+02  1.08e+02  2.56e+03  4.09e-07  4.21e-03  3.52e-03  5.00e+00  2.36e-03  3.89e-03  1.00e+02
 172  3.64e+02  1.08e+02  2.56e+03  3.87e-07  4.20e-03  3.49e-03  5.00e+00  2.35e-03  3.88e-03  1.00e+02
 173  3.64e+02  1.08e+02  2.56e+03  5.05e-07  4.18e-03  3.48e-03  5.00e+00  2.34e-03  3.88e-03  1.00e+02
 174  3.64e+02  1.08e+02  2.56e+03  4.95e-07  4.16e-03  3.46e-03  5.00e+00  2.33e-03  3.87e-03  1.00e+02
 175  3.64e+02  1.08e+02  2.56e+03  3.98e-07  4.13e-03  3.44e-03  5.00e+00  2.32e-03  3.85e-03  1.00e+02
 176  3.64e+02  1.08e+02  2.56e+03  4.54e-07  4.11e-03  3.42e-03  5.00e+00  2.30e-03  3.84e-03  1.00e+02
 177  3.64e+02  1.08e+02  2.56e+03  3.73e-07  4.09e-03  3.40e-03  5.00e+00  2.29e-03  3.82e-03  1.00e+02
 178  3.63e+02  1.08e+02  2.56e+03  4.36e-07  4.07e-03  3.38e-03  5.00e+00  2.28e-03  3.81e-03  1.00e+02
 179  3.63e+02  1.08e+02  2.55e+03  4.95e-07  4.05e-03  3.37e-03  5.00e+00  2.27e-03  3.79e-03  1.00e+02
 180  3.63e+02  1.08e+02  2.55e+03  3.40e-07  4.02e-03  3.35e-03  5.00e+00  2.25e-03  3.77e-03  1.00e+02
 181  3.63e+02  1.08e+02  2.55e+03  4.58e-07  4.00e-03  3.33e-03  5.00e+00  2.24e-03  3.74e-03  1.00e+02
 182  3.63e+02  1.08e+02  2.55e+03  3.41e-07  3.98e-03  3.31e-03  5.00e+00  2.22e-03  3.72e-03  1.00e+02
 183  3.63e+02  1.08e+02  2.55e+03  6.00e-07  3.95e-03  3.30e-03  5.00e+00  2.21e-03  3.69e-03  1.00e+02
 184  3.63e+02  1.08e+02  2.55e+03  5.26e-07  3.92e-03  3.28e-03  5.00e+00  2.20e-03  3.65e-03  1.00e+02
 185  3.63e+02  1.08e+02  2.55e+03  4.09e-07  3.89e-03  3.26e-03  5.00e+00  2.19e-03  3.62e-03  1.00e+02
 186  3.63e+02  1.08e+02  2.55e+03  4.53e-07  3.87e-03  3.25e-03  5.00e+00  2.17e-03  3.59e-03  1.00e+02
 187  3.62e+02  1.08e+02  2.55e+03  4.54e-07  3.84e-03  3.22e-03  5.00e+00  2.15e-03  3.56e-03  1.00e+02
 188  3.62e+02  1.08e+02  2.55e+03  4.13e-07  3.81e-03  3.21e-03  5.00e+00  2.14e-03  3.52e-03  1.00e+02
 189  3.62e+02  1.08e+02  2.54e+03  4.79e-07  3.78e-03  3.19e-03  5.00e+00  2.12e-03  3.48e-03  1.00e+02
 190  3.62e+02  1.08e+02  2.54e+03  5.23e-07  3.76e-03  3.17e-03  5.00e+00  2.11e-03  3.45e-03  1.00e+02
 191  3.62e+02  1.08e+02  2.54e+03  5.34e-07  3.73e-03  3.16e-03  5.00e+00  2.09e-03  3.41e-03  1.00e+02
 192  3.62e+02  1.08e+02  2.54e+03  5.14e-07  3.70e-03  3.14e-03  5.00e+00  2.07e-03  3.37e-03  1.00e+02
 193  3.62e+02  1.08e+02  2.54e+03  4.70e-07  3.67e-03  3.13e-03  5.00e+00  2.06e-03  3.34e-03  1.00e+02
 194  3.62e+02  1.08e+02  2.54e+03  5.11e-07  3.64e-03  3.11e-03  5.00e+00  2.04e-03  3.30e-03  1.00e+02
 195  3.62e+02  1.08e+02  2.54e+03  4.85e-07  3.62e-03  3.10e-03  5.00e+00  2.03e-03  3.26e-03  1.00e+02
 196  3.62e+02  1.08e+02  2.54e+03  5.40e-07  3.59e-03  3.08e-03  5.00e+00  2.01e-03  3.22e-03  1.00e+02
 197  3.61e+02  1.08e+02  2.54e+03  5.34e-07  3.56e-03  3.07e-03  5.00e+00  2.00e-03  3.19e-03  1.00e+02
 198  3.61e+02  1.08e+02  2.54e+03  3.93e-07  3.53e-03  3.05e-03  5.00e+00  1.98e-03  3.15e-03  1.00e+02
 199  3.61e+02  1.08e+02  2.53e+03  4.54e-07  3.50e-03  3.04e-03  5.00e+00  1.97e-03  3.11e-03  1.00e+02
--------------------------------------------------------------------------------------------------------
ConvBPDNDictLearn solve time: 413.55s

Display initial and final dictionaries: central temporal slice

D1 = D1.squeeze()
fig = plot.figure(figsize=(14,7))
plot.subplot(1, 2, 1)
plot.imview(util.tiledict(D0[...,2,:]), fig=fig, title='D0')
plot.subplot(1, 2, 2)
plot.imview(util.tiledict(D1[...,2,:]), fig=fig, title='D1')
fig.show()
../../_images/cbpdndl_video_13_0.png

Display initial and final dictionaries: central spatial vertical slice

D1 = D1.squeeze()
fig = plot.figure(figsize=(14, 7))
plot.subplot(1, 2, 1)
plot.imview(util.tiledict(D0[2]), fig=fig, title='D0')
plot.subplot(1, 2, 2)
plot.imview(util.tiledict(D1[2]), fig=fig, title='D1')
fig.show()
../../_images/cbpdndl_video_15_0.png

Get iterations statistics from solver object and plot functional value, ADMM primary and dual residuals, and automatically adjusted ADMM penalty parameter against the iteration number.

its = d.getitstat()
fig = plot.figure(figsize=(20, 5))
plot.subplot(1, 3, 1)
plot.plot(its.ObjFun, xlbl='Iterations', ylbl='Functional', fig=fig)
plot.subplot(1, 3, 2)
plot.plot(np.vstack((its.XPrRsdl, its.XDlRsdl, its.DPrRsdl, its.DDlRsdl)).T,
          ptyp='semilogy', xlbl='Iterations', ylbl='Residual',
          lgnd=['X Primal', 'X Dual', 'D Primal', 'D Dual'], fig=fig)
plot.subplot(1, 3, 3)
plot.plot(np.vstack((its.XRho, its.DRho)).T, xlbl='Iterations',
          ylbl='Penalty Parameter', ptyp='semilogy',
          lgnd=['$\\rho_X$', '$\\rho_D$'], fig=fig)
fig.show()
../../_images/cbpdndl_video_17_0.png