Closed
Description
Hi,
I'm having the following issue
ERROR: MethodError: no method matching (::ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}})(::NamedTuple{(:x,), Tuple{Float64}})
Closest candidates are:
(::ChainRulesCore.ProjectTo{var"#s12", D} where {var"#s12"<:Real, D<:NamedTuple})(::Complex) at /home/msca8h/.julia/packages/ChainRulesCore/1L9My/src/projection.jl:179
(::ChainRulesCore.ProjectTo)(::ChainRulesCore.Thunk) at /home/msca8h/.julia/packages/ChainRulesCore/1L9My/src/projection.jl:124
(::ChainRulesCore.ProjectTo{T, D} where D<:NamedTuple)(::AbstractFloat) where T<:AbstractFloat at /home/msca8h/.julia/packages/ChainRulesCore/1L9My/src/projection.jl:167
...
Stacktrace:
[1] (::ChainRulesCore.ProjectTo{Ref, NamedTuple{(:type, :x), Tuple{DataType, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}})(dx::Base.RefValue{Any})
@ ChainRulesCore ~/.julia/packages/ChainRulesCore/1L9My/src/projection.jl:275
[2] #56
@ ~/.julia/packages/ChainRulesCore/1L9My/src/projection.jl:230 [inlined]
[3] #4
@ ./generator.jl:36 [inlined]
[4] iterate
@ ./generator.jl:47 [inlined]
[5] collect(itr::Base.Generator{Base.Iterators.Zip{Tuple{Vector{ChainRulesCore.ProjectTo{Ref, NamedTuple{(:type, :x), Tuple{DataType, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}}}, Vector{Base.RefValue{Any}}}}, Base.var"#4#5"{ChainRulesCore.var"#56#57"}})
@ Base ./array.jl:681
[6] map
@ ./abstractarray.jl:2383 [inlined]
[7] (::ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:elements, :axes), Tuple{Vector{ChainRulesCore.ProjectTo{Ref, NamedTuple{(:type, :x), Tuple{DataType, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}}}, Tuple{Base.OneTo{Int64}}}}})(dx::Vector{Base.RefValue{Any}})
@ ChainRulesCore ~/.julia/packages/ChainRulesCore/1L9My/src/projection.jl:230
[8] (::ChainRules.var"#sum_pullback#1375"{Colon, typeof(getindex), ChainRulesCore.ProjectTo{AbstractArray, NamedTuple{(:elements, :axes), Tuple{Vector{ChainRulesCore.ProjectTo{Ref, NamedTuple{(:type, :x), Tuple{DataType, ChainRulesCore.ProjectTo{Float64, NamedTuple{(), Tuple{}}}}}}}, Tuple{Base.OneTo{Int64}}}}}, Vector{Zygote.var"#ad_pullback#45"{Tuple{typeof(getindex), Base.RefValue{Float64}}, typeof(∂(getindex))}}})(ȳ::Float64)
@ ChainRules ~/.julia/packages/ChainRules/RyXef/src/rulesets/Base/mapreduce.jl:88
[9] ZBack
@ ~/.julia/packages/Zygote/Lw5Kf/src/compiler/chainrules.jl:168 [inlined]
[10] Pullback
@ ~/.julia/packages/DynamicPPL/RcfQU/src/threadsafe.jl:25 [inlined]
[11] (::typeof(∂(getlogp)))(Δ::Float64)
@ Zygote ~/.julia/packages/Zygote/Lw5Kf/src/compiler/interface2
which pos up when differentiating through the following Turing model
ard_kernel(σ², ℓ) =
σ²*KernelFunctions.TransformedKernel(
KernelFunctions.Matern52Kernel(),
KernelFunctions.ARDTransform(1 ./ ℓ))
Turing.@model function logisticgp(X, y, jitter=1e-6)
n_features = size(X, 1)
logα ~ Normal(0, 1)
logσ ~ Normal(0, 1)
logℓ ~ MvNormal(n_features, 1)
α² = exp(logα*2)
σ² = exp(logσ*2)
ℓ = exp.(logℓ)
kernel = ard_kernel(α², ℓ)
K = KernelFunctions.kernelmatrix(kernel, X)
K += I*(σ² + jitter)
f ~ MvNormal(zeros(size(X,2)), K)
y .~ Turing.BernoulliLogit.(f)
end
Is this issue related to ChainRules.jl
? Not entirely sure.
Metadata
Metadata
Assignees
Labels
No labels