def test_05(self): N = 16 Nd = 5 K = 2 M = 4 D = cp.random.randn(Nd, Nd, M) s = cp.random.randn(N, N, K) lmbda = 1e-1 b = cbpdn.ConvBPDN(D, s, lmbda) assert b.cri.dimC == 0 assert b.cri.dimK == 1
def test_01(self): N = 16 Nd = 5 Cs = 3 M = 4 D = cp.random.randn(Nd, Nd, M) s = cp.random.randn(N, N, Cs) lmbda = 1e-1 b = cbpdn.ConvBPDN(D, s, lmbda, dimK=0) assert b.cri.dimC == 1 assert b.cri.dimK == 0
def test_03(self): N = 16 Nd = 5 Cd = 3 M = 4 D = cp.random.randn(Nd, Nd, Cd, M) s = cp.random.randn(N, N, Cd) lmbda = 1e-1 b = cbpdn.ConvBPDN(D, s, lmbda) assert b.cri.dimC == 1 assert b.cri.dimK == 0
def test_02(self): N = 16 Nd = 5 Cs = 3 K = 5 M = 4 D = cp.random.randn(Nd, Nd, M) s = cp.random.randn(N, N, Cs, K) lmbda = 1e-1 b = cbpdn.ConvBPDN(D, s, lmbda) assert b.cri.dimC == 1 assert b.cri.dimK == 1
def test_09(self): N = 16 Nd = 5 M = 4 D = cp.random.randn(Nd, Nd, M) s = cp.random.randn(N, N) try: b = cbpdn.ConvBPDN(D, s) b.solve() except Exception as e: print(e) assert 0
def test_12(self): N = 16 Nd = 5 Cs = 3 M = 4 D = cp.random.randn(Nd, Nd, M) s = cp.random.randn(N, N, Cs) lmbda = 1e-1 L = 1e3 opt = cbpdn.ConvBPDN.Options({'L': L}) b = cbpdn.ConvBPDN(D, s, lmbda, opt=opt, dimK=0) b.solve() assert list2array(b.getitstat().Rsdl)[-1] < 1e-3
def test_06(self): N = 16 Nd = 5 K = 2 M = 4 D = cp.random.randn(Nd, Nd, M) s = cp.random.randn(N, N, K) dt = cp.float32 opt = cbpdn.ConvBPDN.Options({'Verbose': False, 'MaxMainIter': 20, 'Backtrack': BacktrackStandard(), 'DataType': dt}) lmbda = 1e-1 b = cbpdn.ConvBPDN(D, s, lmbda, opt=opt) b.solve() assert b.X.dtype == dt assert b.Xf.dtype == complex_dtype(dt) assert b.Yf.dtype == complex_dtype(dt)
def test_18(self): N = 16 Nd = 5 Cs = 3 M = 4 D = cp.random.randn(Nd, Nd, M) s = cp.random.randn(N, N, Cs) lmbda = 1e-1 L = 1e3 try: opt = cbpdn.ConvBPDN.Options({'Monotone': True, 'L': L}) b = cbpdn.ConvBPDN(D, s, lmbda, opt=opt, dimK=0) b.solve() except Exception as e: print(e) assert 0 assert list2array(b.getitstat().Rsdl)[-1] < 1e-3
def test_11(self): N = 63 M = 4 Nd = 8 D = cp.random.randn(Nd, Nd, M) X0 = cp.zeros((N, N, M)) xr = cp.random.randn(N, N, M) xp = cp.abs(xr) > 3 X0[xp] = cp.random.randn(X0[xp].size) S = cp.sum(ifftn(fftn(D, (N, N), (0, 1)) * fftn(X0, None, (0, 1)), None, (0, 1)).real, axis=2) lmbda = 1e-2 L = 1e3 opt = cbpdn.ConvBPDN.Options({'Verbose': False, 'MaxMainIter': 2000, 'RelStopTol': 1e-9, 'L': L, 'Backtrack': BacktrackStandard()}) b = cbpdn.ConvBPDN(D, S, lmbda, opt) b.solve() X1 = b.X.squeeze() assert rrs(X0, X1) < 5e-4 Sr = b.reconstruct().squeeze() assert rrs(S, Sr) < 2e-4