ONNX importer: LSTM, Gather, Unsqueeze/Squeeze, Cast, Where, If (Silero VAD import as the gate)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- kotlin
- Domain
- machine-learning
Research direction
Start with OnnxImport.kt and the existing converters, then read the Lstm API from #823 and the ONNX opset semantics described here. The work spans recurrent lowering, multiple operators, constant-folded control flow, and test coverage; run the one-node converter tests and the pinned silero_vad.onnx import against its ORT golden. Done means end-to-end import without hand edits and outputs within 1e-4.
Written by the indexing model from the issue text.
Description
Context
skainet-io-onnx's graph importer (OnnxImport.kt) handles Add, BatchNormalization, Concat, Conv, Div, Gemm, LeakyRelu, MatMul, MaxPool, Mul, Relu, Reshape, Resize, Sigmoid, Silu, Slice, Softmax, Split, Sub, Transpose, Upsample — the YOLO-shaped set from #230. Recurrent and control-flow nodes are absent, so common small audio/speech graphs (Silero VAD, RNN-T prediction nets, NeMo exports) cannot be imported even though the DSL has Lstm (#823) and gather.
This is the verification path for the native Silero VAD issue: importing the upstream graph and comparing against the hand-written module catches drift in either.
Scope
-
LSTM(ONNX opset ≥ 7 semantics:W,R,Blayouts,initial_h/initial_c,direction=forwardfirst; bidirectional as a follow-up) lowered ontoLstm.stepunrolled over the sequence axis. -
Gather,Unsqueeze,Squeeze,Cast,Where,Shape/ConstantOfShapeas needed by the Silero graph. -
Ifwith constant-foldable conditions (Silero's sample-rate branch) — fold at import when the condition is an initializer, reject otherwise with a clear message rather than silently importing one branch. - Import test on the pinned
silero_vad.onnx: graph builds, forward matches ORT golden within 1e-4 (same golden as the native Silero issue). - Ground-truth coverage for the new ops (#985).
Acceptance
OnnxLoaderimports Silero VAD end to end without hand edits to the file.- Each new converter has a unit test with a minimal one-node graph.
Related
- #230 — ONNX I/O module MVP
- #823 —
Lstm - #985 — ground-truth op coverage
- Dominant language
- Kotlin
- Stars
- 52
- Forks
- 15
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 36
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from SKaiNET-developers/SKaiNET
-
coding good first issue size:xs skill:kotlin-core sub-issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
SKaiNET-developers/SKaiNET#1323 ·
Maintainers usually reply within 1 day
-
coding good first issue platform size:xs skill:js sub-issue
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SKaiNET-developers/SKaiNET#1232 ·
Maintainers usually reply within 1 day
-
skeep tracking
Difficulty 5/5 Over a week Newbie friendliness 15/100
SKaiNET-developers/SKaiNET#1331 ·
Maintainers usually reply within 1 day
-
assessment size:s skill:review sub-issue
Difficulty 4/5 1-2 days Newbie friendliness 18/100
SKaiNET-developers/SKaiNET#1330 ·
Maintainers usually reply within 1 day
-
documentation good first issue size:s skill:docs sub-issue
Difficulty 3/5 1-2 days Newbie friendliness 78/100
SKaiNET-developers/SKaiNET#1329 ·
Maintainers usually reply within 1 day
All issues in SKaiNET-developers/SKaiNET
Similar issues
-
afk-ok area:data-quality importer size:S
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
enorm-labs/event-junkie#3166 ·
Maintainers usually reply within 1 day
-
bugbane/qf good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
osservatorionessuno/bugbane#173 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
theopenconversationkit/tock#2113 ·
Maintainers usually reply within 1 day
-
Bayern feature:Application ready web
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
digitalfabrik/entitlementcard#3176 ·
Maintainers usually reply within 7 days