diff options
author | epapoutsellis <epapoutsellis@gmail.com> | 2019-04-07 22:43:04 +0100 |
---|---|---|
committer | epapoutsellis <epapoutsellis@gmail.com> | 2019-04-07 22:43:04 +0100 |
commit | 11179f54365488d6cdad5d265001ee36ec6c6e42 (patch) | |
tree | ba20f7ca35b95249bd59325221b88fa8a4170649 /Wrappers | |
parent | 01b0a84c552c3b0ca75789f913f8a3c48b60e7f4 (diff) | |
download | framework-11179f54365488d6cdad5d265001ee36ec6c6e42.tar.gz framework-11179f54365488d6cdad5d265001ee36ec6c6e42.tar.bz2 framework-11179f54365488d6cdad5d265001ee36ec6c6e42.tar.xz framework-11179f54365488d6cdad5d265001ee36ec6c6e42.zip |
fix for symmetrized gradient
Diffstat (limited to 'Wrappers')
3 files changed, 19 insertions, 15 deletions
diff --git a/Wrappers/Python/ccpi/optimisation/functions/MixedL21Norm.py b/Wrappers/Python/ccpi/optimisation/functions/MixedL21Norm.py index 1c51236..4266e51 100755 --- a/Wrappers/Python/ccpi/optimisation/functions/MixedL21Norm.py +++ b/Wrappers/Python/ccpi/optimisation/functions/MixedL21Norm.py @@ -126,11 +126,10 @@ if __name__ == '__main__': a1 = f_no_scaled(U) a2 = f_scaled(U) - z = f_no_scaled.proximal_conjugate(U, 1) + z1 = f_no_scaled.proximal_conjugate(U, 1) + z2 = f_scaled.proximal_conjugate(U, 1) - f_no_scaled = MixedL21Norm() - - tmp = [el*el for el in U] + diff --git a/Wrappers/Python/ccpi/optimisation/operators/GradientOperator.py b/Wrappers/Python/ccpi/optimisation/operators/GradientOperator.py index 0c267fc..52923af 100644 --- a/Wrappers/Python/ccpi/optimisation/operators/GradientOperator.py +++ b/Wrappers/Python/ccpi/optimisation/operators/GradientOperator.py @@ -179,7 +179,7 @@ if __name__ == '__main__': a1 = BlockDataContainer( arr, BlockDataContainer(arr, arr)) # -# c1 = arr + a + c1 = arr + a # c2 = arr + a # c2 = a1 + arr # diff --git a/Wrappers/Python/ccpi/optimisation/operators/SymmetrizedGradientOperator.py b/Wrappers/Python/ccpi/optimisation/operators/SymmetrizedGradientOperator.py index ea3ba8f..c38458d 100644 --- a/Wrappers/Python/ccpi/optimisation/operators/SymmetrizedGradientOperator.py +++ b/Wrappers/Python/ccpi/optimisation/operators/SymmetrizedGradientOperator.py @@ -61,8 +61,9 @@ class SymmetrizedGradient(Gradient): tmp[i][j]=FiniteDiff(self.gm_domain.get_item(0), direction = i, bnd_cond = self.bnd_cond).adjoint(x.get_item(j)) tmp = numpy.array(tmp) z = 0.5 * (tmp.T + tmp) + z = z.to - return BlockDataContainer(z.tolist()) + return BlockDataContainer(*z.tolist()) def adjoint(self, x, out=None): @@ -70,9 +71,11 @@ class SymmetrizedGradient(Gradient): res = [] for i in range(2): - for j in range(2): - - restmpFiniteDiff(self.gm_domain.get_item(0), direction = i, bnd_cond = self.bnd_cond).direct(x.get_item(j)) + tmp = ImageData(np.zeros(x.get_item(0))) + for j in range(2): + tmp += FiniteDiff(self.gm_domain.get_item(0), direction = i, bnd_cond = self.bnd_cond).direct(x.get_item(j)) + res.append(tmp) + return res @@ -136,13 +139,15 @@ if __name__ == '__main__': res = E1.direct(u1) - Dx = FiniteDiff(ig1, direction = 1, bnd_cond = 'Neumann') - Dy = FiniteDiff(ig1, direction = 0, bnd_cond = 'Neumann') - - B = BlockOperator(Dy, Dx) - V = BlockDataContainer(u1,u2) + res1 = E1.adjoint(res) - res = B.adjoint(V) +# Dx = FiniteDiff(ig1, direction = 1, bnd_cond = 'Neumann') +# Dy = FiniteDiff(ig1, direction = 0, bnd_cond = 'Neumann') +# +# B = BlockOperator(Dy, Dx) +# V = BlockDataContainer(u1,u2) +# +# res = B.adjoint(V) # ig = (N,M) # ig2 = (2,) + ig |