You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sub-issue of #1379 ([Feature]: GroupNormalization forward pass (groupNorm {} DSL currently crashes)).
Lane: 2 · Kotlin core Skill needed: Kotlin. You do not need to know SKaiNET internals beyond the tensor ops used in LayerNormalization.kt. Size: s (a few hours) Blocked by: nothing
What to do
Open skainet-lang/skainet-lang-core/src/commonMain/kotlin/sk/ainet/lang/nn/normalization/GroupNormalization.kt and LayerNormalization.kt side by side.
Replace the four TODO() helpers: reshape [N, C, H, W] → [N, G, C/G*H*W], take mean/variance over the last dim, normalize with eps, reshape back.
Replace the VoidOpsTensor gamma/beta placeholders with real parameters the way LayerNormalization creates them, and apply them per channel.
Remove @NotImplemented from the class.
Add a test next to the existing normalization tests using the Lane-1 values (or values you compute with PyTorch yourself).
Run ./gradlew :skainet-lang:skainet-lang-core:jvmTest checkUnmarkedStubs, then regenerate the matrix with ./gradlew :skainet-compile:skainet-compile-hlo:jvmTest --tests '*HloCoverageDumpTest' :skainet-compile:skainet-compile-dag:jvmTest --tests '*BackwardCoverageDumpTest' generateDocs and commit the changed docs/modules/ROOT/pages/reference/ files.
Acceptance
Forward matches PyTorch within 1e-5 for all Lane-1 cases
checkUnmarkedStubs passes with the TODOs gone
Matrix NN-layers table shows ✅ for GroupNormalization
Result reported back on the parent issue
Notes
If something here turns out to be wrong or much bigger than the size label, comment on this issue or open a specific bug instead of blocking the parent.
Activity