-
-
Notifications
You must be signed in to change notification settings - Fork 100
Closed as not planned
Labels
bugSomething isn't workingSomething isn't working
Description
The following code works fine when setting T=Float64
, and errors on Float32
:
using Random, Statistics, LinearAlgebra
using Zygote
using OptimizationOptimJL
T = Float32
ps = randn(T, 2)
function callback(state, l)
println("Iteration: $(state.iter), Loss: $l")
return false
end
opt_func = OptimizationFunction(AutoZygote()) do ps, data
mean(ps.^2)
end
opt_prob = OptimizationProblem(opt_func, ps)
## this works
# using Optimisers, OptimizationOptimisers
# res = Optimization.solve(opt_prob, Optimisers.Adam(); callback, maxiters=10)
res = Optimization.solve(opt_prob, Optimization.LBFGS(); callback, maxiters=10)
ERROR: MethodError: Cannot `convert` an object of type Vector{Float32} to an object of type Float64
The function `convert` exists, but no method is defined for this combination of argument types.
Closest candidates are:
convert(::Type{T}, ::T) where T
@ Base Base.jl:126
convert(::Type{<:Real}, ::T) where T<:SparseConnectivityTracer.AbstractTracer
@ SparseConnectivityTracer ~/.julia/packages/SparseConnectivityTracer/aHPgm/src/overloads/conversion.jl:10
convert(::Type{N}, ::D) where {N<:Real, P, T, D<:SparseConnectivityTracer.Dual{P, T}}
@ SparseConnectivityTracer ~/.julia/packages/SparseConnectivityTracer/aHPgm/src/overloads/conversion.jl:31
...
Stacktrace:
[1] Base.RefValue{Float64}(x::Vector{Float32})
@ Base ./refvalue.jl:8
[2] convert(::Type{Ref{Float64}}, x::Vector{Float32})
@ Base ./refpointer.jl:111
[3] cconvert(T::Type, x::Vector{Float32})
@ Base ./essentials.jl:687
[4] setulb(n::Int64, m::Int64, x::Vector{…}, l::Vector{…}, u::Vector{…}, nbd::Vector{…}, f::Float64, g::Vector{…}, factr::Float64, pgtol::Float64, wa::Vector{…}, iwa::Vector{…}, task::Vector{…}, iprint::Int64, csave::Vector{…}, lsave::Vector{…}, isave::Vector{…}, dsave::Vector{…})
@ LBFGSB ~/.julia/packages/LBFGSB/UZibA/src/subroutine.jl:74
[5] (::LBFGSB.L_BFGS_B)(func::Optimization.var"#16#28"{…}, grad!::OptimizationZygoteExt.var"#grad#14"{…}, x0::Vector{…}, bounds::Matrix{…}; m::Int64, factr::Float64, pgtol::Float64, iprint::Int64, maxfun::Int64, maxiter::Int64)
@ LBFGSB ~/.julia/packages/LBFGSB/UZibA/src/wrapper.jl:58
[6] __solve(cache::OptimizationCache{…})
@ Optimization ~/.julia/packages/Optimization/lRtl8/src/lbfgsb.jl:246
[7] solve!(cache::OptimizationCache{…})
@ SciMLBase ~/.julia/packages/SciMLBase/JxpZc/src/solve.jl:234
[8] solve(::OptimizationProblem{…}, ::Optimization.LBFGS; kwargs::@Kwargs{…})
@ SciMLBase ~/.julia/packages/SciMLBase/JxpZc/src/solve.jl:131
[9] top-level scope
@ ~/work/MaskedDiffusion1L/test.jl:22
Some type information was truncated. Use `show(err)` to see complete types.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working