From 2abf3020737508d747803402b588743e77a34a63 Mon Sep 17 00:00:00 2001 From: Stephan Hilb <stephan@ecshi.net> Date: Wed, 2 Dec 2020 23:20:33 +0100 Subject: [PATCH] cleanup --- src/DualTVDD.jl | 182 ----------------------------------------------- src/surrogate.jl | 1 - 2 files changed, 183 deletions(-) diff --git a/src/DualTVDD.jl b/src/DualTVDD.jl index 5cfbd96..bb18d01 100644 --- a/src/DualTVDD.jl +++ b/src/DualTVDD.jl @@ -13,186 +13,4 @@ include("projgrad.jl") include("surrogate.jl") #include("tvnewton.jl") -#using Plots: heatmap -# -#plotimage(u) = heatmap(u, c=:grayC, legend=:none, framestyle=:none, aspect_ratio=1) -# -#function alg_energy(alg, niter) -# print("run ...") -# res = Float64[] -# (p, ctx) = iterate(alg) -# push!(res, energy(ctx)) -# for i in 1:niter -# (p, ctx) = iterate(alg, ctx) -# push!(res, energy(ctx)) -# end -# println(" finished") -# return res -#end -# -#function alg_error(alg, pmin, niter, ninner=1) -# print("run ...") -# res = Float64[] -# ctx = init(alg) -# push!(res, error(fetch(ctx), pmin, ctx.algorithm.problem)) -# for i in 1:niter -# for j in 1:ninner -# step!(ctx) -# end -# push!(res, error(fetch(ctx), pmin, ctx.algorithm.problem)) -# end -# println(" finished") -# return res -#end -# -#function calc_energy(prob, niter) -# alg_ref = DualTVDD.ChambolleAlgorithm(prob) -# ctx = init(alg_ref) -# for i in 1:niter -# ctx = step!(ctx) -# end -# return energy(ctx), fetch(ctx) -#end -# -#function rundd() -# λ = 2.5 -# β = 0 -# #f = zeros(100,100) -# #f[1] = 1 -# #f = [0. 2; 1 0.] -# -# -# #A = 0. * rand(length(f), length(f)) -# #A .+= diagm(ones(length(f))) -# #B = inv(A'*A + β*I) -# -# #g = similar(f) -# #vec(g) .= A' * vec(f) -# -# g = rand(50, 50) -# -# prob = DualTVDD.DualTVL1ROFOpProblem(g, I, λ) -# -# alg_ref = DualTVDD.ChambolleAlgorithm(prob) -# alg_dd = DualTVDD.DualTVDDAlgorithm(prob, M=(2,2), overlap=(4,4)) -# alg_dd2 = DualTVDD.DualTVDDAlgorithm(prob, M=(2,2), overlap=(4,4), parallel=false) -# -# n = 1000 -# -# ref_energy, pmin = calc_energy(prob, 100000) -# -# lognan(x) = x > 0 ? x : NaN -# -# #y = [ -# # lognan.(alg_energy(alg_ref, n) .- ref_energy), -# # lognan.(alg_energy(alg_dd, n) .- ref_energy), -# # lognan.(alg_energy(alg_dd2, n) .- ref_energy), -# # ] -# y = [ -# lognan.(alg_error(alg_ref, pmin, n, 10)), -# lognan.(alg_error(alg_dd, pmin, n)), -# lognan.(alg_error(alg_dd2, pmin, n)), -# ] -# -# plt = plot(y, xaxis=:log, yaxis=:log) -# display(plt) -# -# #display(energy(ctx)) -# #display(ctx.p) -# #display(recover_u(p, prob)) -# -# #println(energy(ctx)) -# #println(energy(ctx2)) -#end -# -#function run3() -# f = rand(20,20) -# A = 0.1*rand(length(f), length(f)) -# A .+= diagm(ones(length(f))) -# -# g = reshape(A'*vec(f), size(f)) -# -# β = 0 -# B = inv(A'*A + β*I) -# println(norm(A)) -# -# λ = 0.1 -# -# # Chambolle -# md = DualTVDD.DualTVL1ROFOpProblem(g, B, λ) -# alg = DualTVDD.ChambolleAlgorithm() -# ctx = DualTVDD.init(md, alg) -# -# # Projected Gradient -# md = DualTVDD.DualTVL1ROFOpProblem(f, A, λ, 0., 0.) -# alg = DualTVDD.ProjGradAlgorithm(λ = 1/norm(A)^2) -# ctx2 = DualTVDD.init(md, alg) -# -# for i in 1:100000 -# step!(ctx) -# step!(ctx2) -# end -# -# #display(ctx.p) -# #display(ctx2.p) -# display(recover_u!(ctx)) -# display(recover_u!(ctx2)) -# -# println(energy(ctx)) -# println(energy(ctx2)) -# -# ctx, ctx2 -#end -# -#function energy(ctx::Union{DualTVDDState,ProjGradState,ChambolleState}) -# return energy(ctx.p, ctx.algorithm.problem) -#end -# -#function error(p, pmin, prob::DualTVL1ROFOpProblem) -# return energy_norm(p .- pmin, prob) / energy(pmin, prob) -#end -# -#function energy(p, prob::DualTVL1ROFOpProblem) -# d = ndims(p) -# -# @inline kfΛ(w) = @inbounds divergence(w) -# kΛ = Kernel{ntuple(_->-1:1, d)}(kfΛ) -# -# v = similar(prob.g) -# -# # v = div(p) + g -# map!(kΛ, v, extend(p, StaticKernels.ExtensionNothing())) -# v .+= prob.g -# #display(v) -# -# # |v|_B^2 / 2 -# u = prob.B * vec(v) -# return sum(u .* vec(v)) / 2 -#end -# -#function energy_norm(p, prob::DualTVL1ROFOpProblem) -# d = ndims(p) -# -# @inline kfΛ(w) = @inbounds divergence(w) -# kΛ = Kernel{ntuple(_->-1:1, d)}(kfΛ) -# -# v = similar(prob.g) -# -# # v = div(p) -# map!(kΛ, v, extend(p, StaticKernels.ExtensionNothing())) -# #display(v) -# -# # |v|_B^2 / 2 -# u = prob.B * vec(v) -# return sum(u .* vec(v)) / 2 -#end -# -# -#function energy(md::DualTVL1ROFOpProblem, u::AbstractMatrix) -# @inline kf(w) = @inbounds 1/2 * (w[0,0] - md.g[w.position])^2 + -# md.λ * sqrt((w[1,0] - w[0,0])^2 + (w[0,1] - w[0,0])^2) -# k = Kernel{(0:1, 0:1)}(kf, StaticKernels.ExtensionReplicate()) -# return sum(k, u) -#end - end # module diff --git a/src/surrogate.jl b/src/surrogate.jl index 9914b99..a4bcb48 100644 --- a/src/surrogate.jl +++ b/src/surrogate.jl @@ -40,7 +40,6 @@ function init(alg::SurrogateAlgorithm) r = reshape(rv, size(g)) s = reshape(sv, size(g)) - #s = extend(reshape(sv, size(g)), StaticKernels.ExtensionReplicate()) @inline kf1(pw) = @inbounds -divergence(pw) k1 = Kernel{ntuple(_->-1:1, d)}(kf1) -- GitLab