GNNLux MEGNetConv drops the state of stateful sublayers
Maintainer thường phản hồi trong vòng 2 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 76/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- julia
- Lĩnh vực
- machine-learning
Hướng nghiên cứu
Đọc forward pass của MEGNetConv và so sánh cách EdgeConv, GINConv và NNConv trả về trạng thái đã cập nhật của các lớp con. Thêm một kiểm thử hồi quy sử dụng BatchNorm trong ϕe, kiểm tra xem các thống kê đang chạy của nó có thay đổi sau một lần gọi ở chế độ training hay không. Sau đó xác nhận kiểm thử chạy thành công với trạng thái đã cập nhật được trả về.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
GNNLux.MEGNetConv wraps ϕe and ϕv in StatefulLuxLayer{true}, but its forward pass returns the input state unchanged:
function (l::MEGNetConv)(g, x, e, ps, st)
ϕe = StatefulLuxLayer{true}(l.ϕe, ps.ϕe, _getstate(st, :ϕe))
ϕv = StatefulLuxLayer{true}(l.ϕv, ps.ϕv, _getstate(st, :ϕv))
m = (; ϕe, ϕv, aggr=l.aggr)
return GNNlib.megnet_conv(m, g, x, e), st
end
Any state update performed by a sublayer is therefore dropped. The default constructor only builds Dense chains, which are stateless, but the MEGNetConv(in_dims, out_dims, ϕe, ϕv; aggr) constructor accepts arbitrary layers. With a stateful one, e.g. BatchNorm or Dropout inside ϕe/ϕv, the running statistics (or RNG) never advance in training mode.
The same pattern is already used by EdgeConv, GINConv and, since #728, NNConv:
stnew = (; ϕe = _getstate(ϕe), ϕv = _getstate(ϕv))
return GNNlib.megnet_conv(m, g, x, e), stnew
This was found by reading the code while reviewing #728 and has not been reproduced yet; a regression test with a BatchNorm in ϕe (checking that the running stats change after a training-mode call) would pin it down. Related: #727.
The other layers with sublayer fields (CGConv, EGNNConv, GATConv, GATv2Conv, GMMConv, GatedGraphConv) have the same return-st pattern, but their constructors only create Dense/Chain of Dense sublayers (plus a GRUCell in GatedGraphConv, whose rng state doesn't appear to be used there), so nothing seems to be lost in practice.
🧔♂️🤖 Assisted by AI
- Ngôn ngữ chính
- Julia
- Star
- 310
- Fork
- 75
- Merge trung bình
- 2 ngày 15 giờ
- Pull request đã merge (30 ngày)
- 10
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của JuliaGraphs/GraphNeuralNetworks.jl
-
gnngraphs
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
JuliaGraphs/GraphNeuralNetworks.jl#733 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Unused output of node type leads to index error in ZygoteCó thể đã có người làm @lenianiva đã nhận 2 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
JuliaGraphs/GraphNeuralNetworks.jl#731 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
maintainance
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
JuliaGraphs/GraphNeuralNetworks.jl#725 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
GCNConv fails to compile with Reactant - MethodErrorCó thể đã có người làm @DHAKED440 đã nhận 4 ngày trước. Đang mởgnnlib lux
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
JuliaGraphs/GraphNeuralNetworks.jl#710 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Mooncake on CUDA issue trackerĐang mởflux gnngraphs gnnlib
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
JuliaGraphs/GraphNeuralNetworks.jl#702 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của JuliaGraphs/GraphNeuralNetworks.jl
Issue tương tự
-
Pin the porting environmentĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
FluxML/Metalhead.jl#407 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
SciML/ModelingToolkit.jl#5371 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
query handling with arrays has changed between 1.x and 2.xCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày