Unused output of node type leads to index error in Zygote
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- julia
- Ambito
- machine-learning
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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]
- Lingua principale
- Julia
- Stelle
- 310
- Fork
- 75
- Merge medio
- 2g 15h
- PR unite (30g)
- 10
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaGraphs/GraphNeuralNetworks.jl
-
lux
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
JuliaGraphs/GraphNeuralNetworks.jl#732 ·
I maintainer di solito rispondono entro 2 giorni
-
gnngraphs
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
JuliaGraphs/GraphNeuralNetworks.jl#733 ·
I maintainer di solito rispondono entro 2 giorni
-
maintainance
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
JuliaGraphs/GraphNeuralNetworks.jl#725 ·
I maintainer di solito rispondono entro 2 giorni
-
GCNConv fails to compile with Reactant - MethodErrorForse già presa @DHAKED440 l’ha presa 3 giorni fa. Apertagnnlib lux
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
JuliaGraphs/GraphNeuralNetworks.jl#710 ·
I maintainer di solito rispondono entro 2 giorni
-
flux gnngraphs gnnlib
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
JuliaGraphs/GraphNeuralNetworks.jl#702 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di JuliaGraphs/GraphNeuralNetworks.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
erfinv(::Float16) and erfcinv(::Float16) are wrong for abs(x) <= 0.75 (erfinv(Float16(0)) == 0.2201)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
JuliaMath/SpecialFunctions.jl#571 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100