When I try to compile this in Julia, I receive this error :
closure2 ERROR: LoadError: MethodError: no method matching
(::var"#closure2#3"{Vector{Float64},
Vector{Float64}})(::Tuple{Vector{Float64}, Vector{Float64}}) Closest
candidates are: (::var"#closure2#3")(::Any, ::Any) at
c:\Users\ABD\Downloads\df\GP (2).jl:150
function L_alpha_1d(w_train,k_train,theta, p)
n0 = length(w_train);
K_00_temp = [square_exp(x1,x2,theta,p) for x1 in k_train, x2 in k_train];
log_m_like = -1/2 *transpose(w_train) * pinv(K_00_temp) * w_train - 1/2 * log(abs(det(K_00_temp))) - n0/2 * log(2*pi) ;
return log_m_like
end
function make_closures(w_train,b_train)
# this is line 150
closure2(theta, p) = -L_alpha_1d(w_train,b_train,theta, p)
return closure2
end
# make_closures(w_train,b_train) = (theta, p) -> -L_alpha_1d(w_train,b_train,theta, p)
nll = make_closures(w_train,b_train)
println(nll)
theta0 = zeros(length(w_train) + 1) # d = 2 and we want an intercept term
p0 = zeros(length(w_train) + 1)
nll((theta0,p0))