summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorepapoutsellis <epapoutsellis@gmail.com>2019-04-07 22:43:04 +0100
committerepapoutsellis <epapoutsellis@gmail.com>2019-04-07 22:43:04 +0100
commit11179f54365488d6cdad5d265001ee36ec6c6e42 (patch)
treeba20f7ca35b95249bd59325221b88fa8a4170649
parent01b0a84c552c3b0ca75789f913f8a3c48b60e7f4 (diff)
downloadframework-11179f54365488d6cdad5d265001ee36ec6c6e42.tar.gz
framework-11179f54365488d6cdad5d265001ee36ec6c6e42.tar.bz2
framework-11179f54365488d6cdad5d265001ee36ec6c6e42.tar.xz
framework-11179f54365488d6cdad5d265001ee36ec6c6e42.zip
fix for symmetrized gradient
-rwxr-xr-xWrappers/Python/ccpi/optimisation/functions/MixedL21Norm.py7
-rw-r--r--Wrappers/Python/ccpi/optimisation/operators/GradientOperator.py2
-rw-r--r--Wrappers/Python/ccpi/optimisation/operators/SymmetrizedGradientOperator.py25
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