Skip to content

Re: Error in optimize! #50

@mdhe1248

Description

@mdhe1248

Hi,
I wanted to update deformation. I ran the script below in flash.wustl.edu:/mnt/donghoon_030/20170412

using JLD
using Images, Unitful, FixedSizeArrays, JLD, AxisArrays
using BlockRegistration

fnmm = "/mnt/donghoon_030/20170412/exp2_20170412" #mm `base` name without "_i"`

#### Load data
Es, cs, Qs, knots, mmis = jldopen(string(fnmm, "_", 1, ".mm"), mmaparrays=true) do file
    read(file, "Es"), read(file, "cs"), read(file, "Qs"), read(file, "knots"), read(file, "mmis")
end

#### Calculate deformation (It may take several hours)
λ_old = 1e-6
λt_old = 1e-5
ap = AffinePenalty(knots, λ)
ϕs_old, penalty = fixed_λ(cs, Qs, knots, ap, λt, mmis; show_trace=true, iterations=5)

λ = 1e-7
λt = 1e-3
ϕs, penalty = fixed_λ(cs, Qs, knots, ap, λt, mmis; show_trace=true, iterations=5)

#### Optimization
ϕ_1, fval_1, fval0_1 = optimize!(ϕs, ϕs_old, ap, mmis);
ϕ_2, fval_2, fval0_2 = optimize!(ϕs, ϕs_old, ap, λt,  mmis);

Is this correct implementation? Should it update ϕs based on ϕs_old, ap, mmis?

I obtained this error:

julia> ϕ, fval, fval0 = optimize!(ϕ, ϕs_old, ap, mmis);
ERROR: MethodError: no method matching maxshift(::Float32)
Closest candidates are:
  maxshift(::CenterIndexedArrays.CenterIndexedArray{ND<:RegisterCore.NumDenom,N,A}) at /home/donghoon/.julia/v0.5/BlockRegistration/src/RegisterCore.jl:226
  maxshift{T,N}(::CachedInterpolations.CachedInterpolation{T,N,M,O}) at /home/donghoon/.julia/v0.5/BlockRegistration/src/RegisterOptimize.jl:1044
 in #_optimize!#5(::Array{Any,1}, ::Function, ::RegisterOptimize.DeformOpt{Array{RegisterDeformation.GridDeformation{Float32,3,Array{FixedSizeArrays.Vec{3,Float32},3},LinSpace{Float64}},1},Array{RegisterDeformation.GridDeformation{Float32,3,Array{FixedSizeArrays.Vec{3,Float32},3},LinSpace{Float64}},1},RegisterPenalty.AffinePenalty{Float64,3},Array{Float32,8}}, ::Array{RegisterDeformation.GridDeformation{Float32,3,Array{FixedSizeArrays.Vec{3,Float32},3},LinSpace{Float64}},1}, ::RegisterPenalty.AffinePenalty{Float64,3}, ::Array{Float32,8}, ::Float64, ::Int64) at /home/donghoon/.julia/v0.5/BlockRegistration/src/RegisterOptimize.jl:432
 in #optimize!#4(::Float64, ::Int64, ::Array{Any,1}, ::Function, ::Array{RegisterDeformation.GridDeformation{Float32,3,Array{FixedSizeArrays.Vec{3,Float32},3},LinSpace{Float64}},1}, ::Array{RegisterDeformation.GridDeformation{Float32,3,Array{FixedSizeArrays.Vec{3,Float32},3},LinSpace{Float64}},1}, ::RegisterPenalty.AffinePenalty{Float64,3}, ::Array{Float32,8}) at /home/donghoon/.julia/v0.5/BlockRegistration/src/RegisterOptimize.jl:426
 in optimize!(::Array{RegisterDeformation.GridDeformation{Float32,3,Array{FixedSizeArrays.Vec{3,Float32},3},LinSpace{Float64}},1}, ::Array{RegisterDeformation.GridDeformation{Float32,3,Array{FixedSizeArrays.Vec{3,Float32},3},LinSpace{Float64}},1}, ::RegisterPenalty.AffinePenalty{Float64,3}, ::Array{Float32,8}) at /home/donghoon/.julia/v0.5/BlockRegistration/src/RegisterOptimize.jl:425

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions