Ambiguity issue with transposed of sparse matrices from SparseArrays.jl
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Reproduce el fragmento de Julia con SparseArrays y ReverseDiff, y luego inspecciona ReverseDiff/src/derivatives/linalg/arithmetic.jl alrededor de la línea 222 junto con el método matmul de LinearAlgebra indicado en el error. El trabajo estará terminado cuando la multiplicación de matrices sparse transpuestas no tenga ningún método ambiguo y ReverseDiff.jacobian se ejecute correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Ran into the following issue:
julia> using SparseArrays, ReverseDiff
julia> A
3×1 SparseArrays.SparseMatrixCSC{Bool,Int64} with 1 stored entry:
[1, 1] = 1
julia> ReverseDiff.jacobian(x -> A' * x, ones(1))
ERROR: MethodError: *(::LinearAlgebra.Adjoint{Bool,SparseArrays.SparseMatrixCSC{Bool,Int64}}, ::ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}}) is ambiguous. Candidates:
*(adjA::LinearAlgebra.Adjoint{#s662,#s661} where #s661<:AbstractArray{T,2} where #s662, x::AbstractArray{S,1}) where {T, S} in LinearAlgebra at /opt/julia-1.4.0/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:111
*(x::LinearAlgebra.Adjoint{#s54,#s53} where #s53<:(AbstractArray{T,2} where T) where #s54, y::ReverseDiff.TrackedArray{V,D,1,VA,DA} where DA where VA) where {V, D} in ReverseDiff at /home/tor/.julia/packages/ReverseDiff/uy0uk/src/derivatives/linalg/arithmetic.jl:222
Possible fix, define
*(::LinearAlgebra.Adjoint{#s54,#s53} where #s53<:AbstractArray{T,2} where #s54, ::ReverseDiff.TrackedArray{V,D,1,VA,DA}) where {V, D, T, VA, DA}
Stacktrace:
[1] (::var"#15#16")(::ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}}) at ./REPL[33]:1
[2] ReverseDiff.JacobianTape(::var"#15#16", ::Array{Float64,1}, ::ReverseDiff.JacobianConfig{ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}},Nothing}) at /home/tor/.julia/packages/ReverseDiff/uy0uk/src/api/tape.jl:229
[3] jacobian(::Function, ::Array{Float64,1}, ::ReverseDiff.JacobianConfig{ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}},Nothing}) at /home/tor/.julia/packages/ReverseDiff/uy0uk/src/api/jacobians.jl:23 (repeats 2 times)
[4] top-level scope at REPL[33]:1
Ran into similar issues with Tracker.jl a good while back and this PR fixed those issues: https://github.com/FluxML/Tracker.jl/pull/37. Related?
- Lenguaje dominante
- Julia
- Estrellas
- 397
- Forks
- 62
- Merge medio
- 8 h 9 min
- PR fusionados (30 d)
- 4
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaDiff/ReverseDiff.jl
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
JuliaDiff/ReverseDiff.jl#318 ·
-
`@grad`/`@grad_from_chainrules` silently reuse a tangent if a pullback returns too few tangentsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
JuliaDiff/ReverseDiff.jl#315 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
JuliaDiff/ReverseDiff.jl#314 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 46/100
JuliaDiff/ReverseDiff.jl#327 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 56/100
JuliaDiff/ReverseDiff.jl#321 ·
Todos los issues de JuliaDiff/ReverseDiff.jl
Issues similares
-
release preparation spack
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día
-
30-minutes algorithm any-language codewars dart easy elixir hackerrank hacktoberfest haskell help wanted interview-prep julia leetcode lua open-source r scala students zig
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Huerte/algo-solutions-python#163 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
QuantumSavory/QuantumClifford.jl#853 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
JuliaPackaging/Yggdrasil#15441 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
JuliaSmoothOptimizers/Penelopt.jl#260 ·
Los mantenedores suelen responder en 1 día