I mixed up the function names, now I fixed them.
While importing Tullio with ReverseDiff I get the following warning but generally the sampling finishes and estimations are accurate.
┌ Warning: Error requiring ReverseDiff from Tullio:
│ LoadError: LoadError: MethodError: no method matching gensym(::Expr)
│ Closest candidates are:
│ gensym(!Matched::Symbol) at expr.jl:15
│ gensym(!Matched::String) at expr.jl:12
│ gensym() at expr.jl:10
│ ...
│ Stacktrace:
│ [1] @grad(::LineNumberNode, ::Module, ::Any) at /home/swamy/.julia/packages/ReverseDiff/Thhqg/src/macros.jl:182
│ [2] include(::Module, ::String) at ./Base.jl:377
│ [3] include(::String) at /home/s/.julia/packages/Tullio/HGzih/src/Tullio.jl:1
│ [4] top-level scope at REPL[11]:1
│ [5] eval at ./boot.jl:331 [inlined]
│ [6] eval at /home/s/.julia/packages/Tullio/HGzih/src/Tullio.jl:1 [inlined]
│ [7] (::Tullio.var"#150#154")() at /home/s/.julia/packages/Requires/qy6zC/src/require.jl:85
│ [8] err(::Any, ::Module, ::String) at /home/s/.julia/packages/Requires/qy6zC/src/require.jl:42
│ [9] (::Tullio.var"#149#153")() at /home/s/.julia/packages/Requires/qy6zC/src/require.jl:84
│ [10] withpath(::Any, ::String) at /home/s/.julia/packages/Requires/qy6zC/src/require.jl:32
│ [11] (::Tullio.var"#148#152")() at /home/s/.julia/packages/Requires/qy6zC/src/require.jl:83
│ [12] listenpkg(::Any, ::Base.PkgId) at /home/s/.julia/packages/Requires/qy6zC/src/require.jl:15
│ [13] macro expansion at /home/s/.julia/packages/Requires/qy6zC/src/require.jl:81 [inlined]
│ [14] (::Tullio.var"#147#151")() at /home/s/.julia/packages/Requires/qy6zC/src/init.jl:11
│ [15] __init__() at /home/s/.julia/packages/Requires/qy6zC/src/init.jl:18
│ [16] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:697
│ [17] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:781
│ [18] _require(::Base.PkgId) at ./loading.jl:1006
│ [19] require(::Base.PkgId) at ./loading.jl:927
│ [20] require(::Module, ::Symbol) at ./loading.jl:922
│ [21] eval(::Module, ::Any) at ./boot.jl:331
│ [22] eval_user_input(::Any, ::REPL.REPLBackend) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:86
│ [23] macro expansion at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:118 [inlined]
│ [24] (::REPL.var"#26#27"{REPL.REPLBackend})() at ./task.jl:358
│ in expression starting at /home/s/.julia/packages/Tullio/HGzih/src/grad/reverse.jl:8
│ in expression starting at /home/s/.julia/packages/Tullio/HGzih/src/grad/reverse.jl:8
└ @ Requires ~/.julia/packages/Requires/qy6zC/src/require.jl:44
-
NUTS sampler needs to get gradients from AD, so its somehow getting gradients or else it will output gradient undefined error or something. I’m sure ReverseDiff is being used because if I use ForwardDiff instead of ReverseDiff it takes much longer to finish sampling.
-
Function using
Tulliogives the corruption error. -
A is not sparse, its a dense array.