Comments (1)
I personally found this incredibly confusing:
julia> ReverseDiff.gradient(sin, 1.5)
ERROR: MethodError: no method matching ReverseDiff.GradientConfig(::Float64)
Closest candidates are:
ReverseDiff.GradientConfig(::AbstractArray{T,N} where N) where T at /home/samuela/.julia/packages/ReverseDiff/8hp1k/src/api/Config.jl:35
ReverseDiff.GradientConfig(::AbstractArray{T,N} where N, ::Array{ReverseDiff.AbstractInstruction,1}) where T at /home/samuela/.julia/packages/ReverseDiff/8hp1k/src/api/Config.jl:35
ReverseDiff.GradientConfig(::Tuple) at /home/samuela/.julia/packages/ReverseDiff/8hp1k/src/api/Config.jl:37
...
Stacktrace:
[1] gradient(::Function, ::Float64) at /home/samuela/.julia/packages/ReverseDiff/8hp1k/src/api/gradients.jl:22
[2] top-level scope at REPL[13]:1
julia>
And I'm still not sure how to make it actually work:
julia> ReverseDiff.gradient(sin, [1.5])
ERROR: MethodError: no method matching sin(::ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}})
Closest candidates are:
sin(::Complex{Float16}) at math.jl:1145
sin(::CUDA.CuKernelContext, ::Any) at /home/samuela/.julia/packages/CUDA/dZvbp/src/gpuarrays.jl:48
sin(::BigFloat) at mpfr.jl:727
...
Stacktrace:
[1] ReverseDiff.GradientTape(::typeof(sin), ::Array{Float64,1}, ::ReverseDiff.GradientConfig{ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}}}) at /home/samuela/.julia/packages/ReverseDiff/8hp1k/src/api/tape.jl:199
[2] gradient(::Function, ::Array{Float64,1}, ::ReverseDiff.GradientConfig{ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}}}) at /home/samuela/.julia/packages/ReverseDiff/8hp1k/src/api/gradients.jl:22 (repeats 2 times)
[3] top-level scope at REPL[14]:1
julia> ReverseDiff.gradient(sin, ([1.5],))
ERROR: MethodError: no method matching sin(::ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}})
Closest candidates are:
sin(::Complex{Float16}) at math.jl:1145
sin(::CUDA.CuKernelContext, ::Any) at /home/samuela/.julia/packages/CUDA/dZvbp/src/gpuarrays.jl:48
sin(::BigFloat) at mpfr.jl:727
...
Stacktrace:
[1] ReverseDiff.GradientTape(::Function, ::Tuple{Array{Float64,1}}, ::ReverseDiff.GradientConfig{Tuple{ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}}}}) at /home/samuela/.julia/packages/ReverseDiff/8hp1k/src/api/tape.jl:207
[2] gradient(::Function, ::Tuple{Array{Float64,1}}, ::ReverseDiff.GradientConfig{Tuple{ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}}}}) at /home/samuela/.julia/packages/ReverseDiff/8hp1k/src/api/gradients.jl:22 (repeats 2 times)
[3] top-level scope at REPL[15]:1
Can ReverseDiff.jl take the gradient of a R -> R function?
from reversediff.jl.
Related Issues (20)
- Error when using scalar vs. vector to operate on tracked inupt HOT 1
- Record `Broadcast.broadcasted` instead of `Broadcast.broadcast`
- MethodError: ReverseDiff.TrackedReal ... is ambiguous.
- double free crash with multi-threaded code only when using multiple threads
- @grad_from_chainrules macro fails when using multi-output functions HOT 2
- ReverseDiff documentation shows issue that has been fixed? Nested differentiation of a closure? HOT 1
- `MethodError: *(::Diagonal, ::ReverseDiff.TrackedArray)` is ambiguous.
- `@grad_from_chainrules` hygiene: cannot use custom types in method signature HOT 3
- Define `typemin` for tracked reals.
- ReverseDiff defines a huge number of methods. HOT 3
- Nested differentiation of closures yields incorrect results. Any news on the fix?
- Enhancement proposal: Modular tape caching HOT 16
- Bug: Derivative of transposed-vector times matrix is incorrect. HOT 5
- Strange bug when deferring to ChainRules HOT 1
- Add ChainRulesCore RuleConfig? HOT 1
- mean BigFloat precision
- MethodError: vcat(::ReverseDiff.TrackedArray{Float32, Float32, 2, Matrix{Float32}, Matrix{Float32}}, ::Matrix{Float32}) is ambiguous. HOT 4
- Method ambiguities reported by Aqua
- DiffResults objects are not re-aliased properly HOT 2
- ERROR: LoadError: Some tests did not pass: 146 passed, 0 failed, 1 errored, 0 broken. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reversediff.jl.