Michael Abbott

Results 1143 comments of Michael Abbott

It would be nice to be quicker. But the tests aren't just about mathematical correctness, some are also checking that missing branches with `nothing` are handled correctly, etc. If https://github.com/JuliaDiff/Diffractor.jl/issues/66...

It seems to make dense zeros: ```julia julia> using FiniteDifferences julia> grad(central_fdm(5, 1), x -> sum(x.a), (a=[1,2f0], b=([3,4f0], 5.0))) ((a = Float32[0.9999863, 1.0000029], b = (Float32[0.0, 0.0], 0.0)),) ``` I...

The linked commit was merged and reverted, https://github.com/FluxML/Tracker.jl/commits/master . I have no memory of what it did or why, though!

Ok, https://github.com/FluxML/Tracker.jl/pull/128/commits/f885295f0c7dceaf6d96b5e8d9847d458c84d057 adds something... As usual it's a nest of ambiguities, this will make `Matrix(Diagonal(param([1,2,3])))` work again, but various combinations of `Array{T}(...)` have their own methods and I didn't try...

Since this issue is still open, the current failures on nightly involve `kron(a::TrackedArray{…,Vector{Float64}}, b::TrackedArray{…,Vector{Float64}})`. This is the same problem as https://github.com/JuliaDiff/ChainRules.jl/issues/684. On Julia

That’s right, I don’t recally exactly why but I couldn’t make the gradients work in general for Tracker. (For `mapcols` I explicitly handle the pullback functions myself, rather than getting...

However you can do this: ``` julia> reshape(mapcols(norm, reshape(Tracker.param(randn(2,2,2,3)), 4,6)), 2,3) Tracked 2×3 Array{Float64,2}: 1.2732 1.34758 2.0512 1.42643 1.55332 1.70304 ``` I guess anything with `dims=1:M` can be handled like...

Yes, they have quite different paths. `mapcols` handles everything in-house, as this was the only way I could make things work for Tracker. (As does `MapCols`, in a different way.)...

> It also works with Forward and ReverseDiff. Is that normal? With these, this package is not involved in derivatives at all. I suspect that this means ReverseDiff is tracking...

Yes, for scalars I called `surevec(x) = [x]` before reducing, which made an `Array` always. I tried two things on master to improve things. The first made a small CuArray...