Skip to content

sum doesn't work for VectorOfArray{ReverseDiff.TrackedReal{..}, ...} #595

Description

@AayushSabharwal

MWE:

using ReverseDiff, RecursiveArrayTools
tunables = rand(3)
ReverseDiff.gradient(tunables) do tunables
           sum(VectorOfArray([tunables]))
       end

Errors with:

ERROR: TypeError: in typeassert, expected ReverseDiff.TrackedReal{Float64, Float64, ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}}, got a value of type ReverseDiff.TrackedReal{Float64, Float64, Nothing}
Stacktrace:
 [1] sum(VA::VectorOfArray{ReverseDiff.TrackedReal{…}, 2, Vector{…}})
   @ RecursiveArrayTools ~/.julia/packages/RecursiveArrayTools/CbC7J/src/vector_of_array.jl:1134
 [2] (::var"#74#75")(tunables::ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}})
   @ Main ./REPL[126]:2
 [3] ReverseDiff.GradientTape(f::var"#74#75", input::Vector{Float64}, cfg::ReverseDiff.GradientConfig{ReverseDiff.TrackedArray{…}})
   @ ReverseDiff ~/.julia/packages/ReverseDiff/1z9iq/src/api/tape.jl:199
 [4] gradient(f::Function, input::Vector{Float64}, cfg::ReverseDiff.GradientConfig{ReverseDiff.TrackedArray{…}})
   @ ReverseDiff ~/.julia/packages/ReverseDiff/1z9iq/src/api/gradients.jl:22
 [5] top-level scope
   @ REPL[126]:1
 [6] top-level scope
   @ REPL:1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions