{"action":"created","issue":{"url":"https://api.github.com/repos/jeff-regier/Celeste.jl/issues/555","repository_url":"https://api.github.com/repos/jeff-regier/Celeste.jl","labels_url":"https://api.github.com/repos/jeff-regier/Celeste.jl/issues/555/labels{/name}","comments_url":"https://api.github.com/repos/jeff-regier/Celeste.jl/issues/555/comments","events_url":"https://api.github.com/repos/jeff-regier/Celeste.jl/issues/555/events","html_url":"https://github.com/jeff-regier/Celeste.jl/pull/555","id":205071680,"number":555,"title":"add test to show dual numbers lead to an error","user":{"login":"jeff-regier","id":8953355,"avatar_url":"https://avatars.githubusercontent.com/u/8953355?v=3","gravatar_id":"","url":"https://api.github.com/users/jeff-regier","html_url":"https://github.com/jeff-regier","followers_url":"https://api.github.com/users/jeff-regier/followers","following_url":"https://api.github.com/users/jeff-regier/following{/other_user}","gists_url":"https://api.github.com/users/jeff-regier/gists{/gist_id}","starred_url":"https://api.github.com/users/jeff-regier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeff-regier/subscriptions","organizations_url":"https://api.github.com/users/jeff-regier/orgs","repos_url":"https://api.github.com/users/jeff-regier/repos","events_url":"https://api.github.com/users/jeff-regier/events{/privacy}","received_events_url":"https://api.github.com/users/jeff-regier/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2017-02-03T04:48:47Z","updated_at":"2017-02-03T19:15:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jeff-regier/Celeste.jl/pulls/555","html_url":"https://github.com/jeff-regier/Celeste.jl/pull/555","diff_url":"https://github.com/jeff-regier/Celeste.jl/pull/555.diff","patch_url":"https://github.com/jeff-regier/Celeste.jl/pull/555.patch"},"body":"@jrevels I was trying to compare the runtimes for dual numbers vs Float64, to a get a sense of the overhead, but I'm getting an error from the KL divergence code when I try calling it with ForwardDiff's dual numbers. Any idea what's happening? It's at elbo_kl.jl:187. The test I wrote to recreate this error is part of this branch but not master.\r\n\r\nThanks!\r\n\r\n```\r\njeff@dean ~/git/Celeste/test $ ./runtests.jl elbo\r\nmake: Nothing to be done for 'all'.\r\nmake: Nothing to be done for 'all'.\r\nmake: Nothing to be done for 'fetch'.\r\nWARNING: Skipping long running tests.  To test everything, run tests with the flag --long-running\r\nRunning test_elbo.jl\r\n  2.129635 seconds (1.97 M allocations: 76.162 MB, 0.78% gc time)\r\n\tFAILED: test_elbo.jl\r\nERROR: LoadError: LoadError: MethodError: Cannot `convert` an object of type ForwardDiff.Dual{88,Float64} to an object of type Float64\r\nThis may have arisen from a call to the constructor Float64(...),\r\nsince type constructors fall back to convert methods.\r\n in copy!(::Base.LinearFast, ::Array{Float64,1}, ::Base.LinearFast, ::Array{ForwardDiff.Dual{88,Float64},1}) at ./abstractarray.jl:559\r\n in value! at /home/jeff/.julia/v0.5/ReverseDiff/src/tracked.jl:146 [inlined]\r\n in seeded_forward_pass! at /home/jeff/.julia/v0.5/ReverseDiff/src/api/tape.jl:35 [inlined]\r\n in gradient!(::DiffBase.DiffResult{1,ForwardDiff.Dual{88,Float64},Tuple{Array{ForwardDiff.Dual{88,Float64},2}}}, ::ReverseDiff.Compiled{ReverseDiff.GradientTape{Celeste.DeterministicVI.KLDivergence.#subtract_kl,ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}},ReverseDiff.TrackedReal{Float64,Float64,Void}},Celeste.DeterministicVI.KLDivergence.#subtract_kl,ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}},ReverseDiff.TrackedReal{Float64,Float64,Void},##1#2,##3#4}, ::Array{ForwardDiff.Dual{88,Float64},1}) at /home/jeff/.julia/v0.5/ReverseDiff/src/api/gradients.jl:79\r\n in subtract_kl_source!(::Celeste.SensitiveFloats.SensitiveFloat{ForwardDiff.Dual{88,Float64}}, ::DiffBase.DiffResult{1,ForwardDiff.Dual{88,Float64},Tuple{Array{ForwardDiff.Dual{88,Float64},2}}}, ::Array{ForwardDiff.Dual{88,Float64},1}, ::Celeste.DeterministicVI.KLDivergence.KLHelper{ReverseDiff.##301#302{ReverseDiff.Compiled{ReverseDiff.GradientTape{Celeste.DeterministicVI.KLDivergence.#subtract_kl,ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}},ReverseDiff.TrackedReal{Float64,Float64,Void}},Celeste.DeterministicVI.KLDivergence.#subtract_kl,ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}},ReverseDiff.TrackedReal{Float64,Float64,Void},##1#2,##3#4}},Celeste.DeterministicVI.KLDivergence.##4#6{ForwardDiff.JacobianConfig{9,Float64,Array{ForwardDiff.Dual{9,Float64},1}},Celeste.DeterministicVI.KLDivergence.##3#5{Array{ForwardDiff.Dual{9,Float64},1},ReverseDiff.##301#302{ReverseDiff.Compiled{ReverseDiff.GradientTape{Celeste.DeterministicVI.KLDivergence.#subtract_kl,ReverseDiff.TrackedArray{ForwardDiff.Dual{9,Float64},ForwardDiff.Dual{9,Float64},1,Array{ForwardDiff.Dual{9,Float64},1},Array{ForwardDiff.Dual{9,Float64},1}},ReverseDiff.TrackedReal{ForwardDiff.Dual{9,Float64},ForwardDiff.Dual{9,Float64},Void}},Celeste.DeterministicVI.KLDivergence.#subtract_kl,ReverseDiff.TrackedArray{ForwardDiff.Dual{9,Float64},ForwardDiff.Dual{9,Float64},1,Array{ForwardDiff.Dual{9,Float64},1},Array{ForwardDiff.Dual{9,Float64},1}},ReverseDiff.TrackedReal{ForwardDiff.Dual{9,Float64},ForwardDiff.Dual{9,Float64},Void},##5#6,##7#8}}}}}) at /home/jeff/.julia/v0.5/Celeste/src/deterministic_vi/elbo_kl.jl:187\r\n```"},"comment":{"url":"https://api.github.com/repos/jeff-regier/Celeste.jl/issues/comments/277336155","html_url":"https://github.com/jeff-regier/Celeste.jl/pull/555#issuecomment-277336155","issue_url":"https://api.github.com/repos/jeff-regier/Celeste.jl/issues/555","id":277336155,"user":{"login":"andreasnoack","id":505001,"avatar_url":"https://avatars.githubusercontent.com/u/505001?v=3","gravatar_id":"","url":"https://api.github.com/users/andreasnoack","html_url":"https://github.com/andreasnoack","followers_url":"https://api.github.com/users/andreasnoack/followers","following_url":"https://api.github.com/users/andreasnoack/following{/other_user}","gists_url":"https://api.github.com/users/andreasnoack/gists{/gist_id}","starred_url":"https://api.github.com/users/andreasnoack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreasnoack/subscriptions","organizations_url":"https://api.github.com/users/andreasnoack/orgs","repos_url":"https://api.github.com/users/andreasnoack/repos","events_url":"https://api.github.com/users/andreasnoack/events{/privacy}","received_events_url":"https://api.github.com/users/andreasnoack/received_events","type":"User","site_admin":false},"created_at":"2017-02-03T19:15:23Z","updated_at":"2017-02-03T19:15:23Z","body":"We can see in the SDE output if the wide instructions are used. Does any of this change `benchmark_one_light_source`? Should I rerun the flame graph and FLOP count?"}}
{"actor":{"display_login":"andreasnoack"}}