Unused output of node type leads to index error in Zygote
メンテナーはふだん 2 日以内に返信
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- julia
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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]
- 主要言語
- Julia
- スター
- 310
- フォーク
- 75
- 平均マージ
- 2日 15時間
- マージ済み PR(30日)
- 10
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaGraphs/GraphNeuralNetworks.jl のほかの issue
-
lux
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
JuliaGraphs/GraphNeuralNetworks.jl#732 ·
メンテナーはふだん 2 日以内に返信
-
gnngraphs
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
JuliaGraphs/GraphNeuralNetworks.jl#733 ·
メンテナーはふだん 2 日以内に返信
-
maintainance
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
JuliaGraphs/GraphNeuralNetworks.jl#725 ·
メンテナーはふだん 2 日以内に返信
-
GCNConv fails to compile with Reactant - MethodError対応中かも @DHAKED440 が 4 日前に担当しました。 オープンgnnlib lux
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
JuliaGraphs/GraphNeuralNetworks.jl#710 ·
メンテナーはふだん 2 日以内に返信
-
flux gnngraphs gnnlib
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
JuliaGraphs/GraphNeuralNetworks.jl#702 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
JuliaGraphs/GraphNeuralNetworks.jl の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
erfinv(::Float16) and erfcinv(::Float16) are wrong for abs(x) <= 0.75 (erfinv(Float16(0)) == 0.2201)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
JuliaMath/SpecialFunctions.jl#571 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100