and then passes the ϵ vector of vectors to the solve. If we have a custom adjoint, we can instead use a reshape on the ϵ to a matrix and avoid that transformation within the likleihood calculation itself. It is hard to know whether the backprop of the vector of vector ϵ is slow without benchmarking it.
Regardless, inside of the solve with a custom adjoint the performance should be irrelevant because we can use efficient views and mutating matrices. That wasnt necessaily true when Zygote needed to differentiate it direclty.
The current likelihood within turing does
and then passes the ϵ vector of vectors to the
solve
. If we have a custom adjoint, we can instead use a reshape on the ϵ to a matrix and avoid that transformation within the likleihood calculation itself. It is hard to know whether the backprop of the vector of vector ϵ is slow without benchmarking it.Regardless, inside of the
solve
with a custom adjoint the performance should be irrelevant because we can use efficient views and mutating matrices. That wasnt necessaily true when Zygote needed to differentiate it direclty.