Unused output of node type leads to index error in Zygote
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- julia
- Área
- machine-learning
Línea de trabajo
Start with the failing MWE in the issue and trace the GATConv call through src/layers/conv.jl and src/layers/heteroconv.jl, then inspect the reported gat_conv location in GNNlib. Reproduce the Zygote gradient error with the unused node type C and check the related tests. Done means the gradient completes without a bounds error; an open linked pull request already addresses this issue.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
MWE:
using GraphNeuralNetworks, Flux
g = GNNHeteroGraph(
Dict(
(:A, :a, :B) => ([1, 2], [3, 4]),
(:B, :a, :A) => ([1], [2]),
(:A, :a, :C) => ([1], [1]),
);
num_nodes = Dict(:A => 3, :B => 5, :C => 2),
)
layer = HeteroGraphConv([et => GATConv(2 => 2) for et in keys(g.edata)])
x = (A = rand(Float32, 2, 3), B = rand(Float32, 2, 5), C = rand(Float32, 2, 2))
Flux.gradient(x) do x
y = layer(g, x)
sum(y[:A]) + sum(y[:B])
end
Error
ERROR: LoadError: BoundsError: attempt to access Tuple{Nothing, ChainRulesCore.ZeroTangent, ChainRulesCore.ZeroTangent} at index [4]
Stacktrace:
[1] getindex
@ ./tuple.jl:33 [inlined]
[2] gradindex(x::Tuple{Nothing, ChainRulesCore.ZeroTangent, ChainRulesCore.ZeroTangent}, i::Int64)
@ Zygote ~/.julia/packages/Zygote/5O3tb/src/compiler/reverse.jl:24
[3] gat_conv
@ ~/.julia/packages/GNNlib/sAfhh/src/layers/conv.jl:154 [inlined]
[4] (::Zygote.Pullback{Tuple{typeof(gat_conv), GATConv{Dense{typeof(identity), Matrix{Float32}, Bool}, Nothing, Float64, Float32, Matrix{Float32}, typeof(identity), Vector{Float32}}, GNNHeteroGraph{Tuple{Vector{Int64}, Vector{Int64}, Nothing}}, Tuple{Matrix{Float32}, Matrix{Float32}}, Nothing}, Any})(Δ::ChainRulesCore.ZeroTangent)
@ Zygote ~/.julia/packages/Zygote/5O3tb/src/compiler/interface2.jl:0
[5] GATConv (repeats 2 times)
@ ~/.julia/packages/GraphNeuralNetworks/C8IDs/src/layers/conv.jl:346 [inlined]
[6] forw
@ ~/.julia/packages/GraphNeuralNetworks/C8IDs/src/layers/heteroconv.jl:63 [inlined]
- Lenguaje dominante
- Julia
- Estrellas
- 310
- Forks
- 75
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 10
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 JuliaGraphs/GraphNeuralNetworks.jl
-
lux
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
JuliaGraphs/GraphNeuralNetworks.jl#732 ·
Los mantenedores suelen responder en 2 días
-
gnngraphs
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
JuliaGraphs/GraphNeuralNetworks.jl#733 ·
Los mantenedores suelen responder en 2 días
-
maintainance
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
JuliaGraphs/GraphNeuralNetworks.jl#725 ·
Los mantenedores suelen responder en 2 días
-
GCNConv fails to compile with Reactant - MethodErrorPosiblemente ocupada @DHAKED440 la tomó hace 4 días. Abiertognnlib lux
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
JuliaGraphs/GraphNeuralNetworks.jl#710 ·
Los mantenedores suelen responder en 2 días
-
Mooncake on CUDA issue trackerAbiertoflux gnngraphs gnnlib
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
JuliaGraphs/GraphNeuralNetworks.jl#702 · 1 comentario ·
Los mantenedores suelen responder en 2 días
Todos los issues de JuliaGraphs/GraphNeuralNetworks.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
erfinv(::Float16) and erfcinv(::Float16) are wrong for abs(x) <= 0.75 (erfinv(Float16(0)) == 0.2201)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
JuliaMath/SpecialFunctions.jl#571 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100