es-ude / es-ude/OnDeviceTraining
layer: ResNet-style skip connections for 1D and 2D CNNs
- Dominant language
- C
- Stars
- 1
- Forks
- 3
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 8
Description
## Feature
ResNet-style residual blocks for 1D and 2D CNNs: identity shortcut around conv→norm→act→conv→norm with an elementwise-add merge, plus the projection shortcut (kernel-size-1 conv) for blocks that change channel count or stride.
## Blockers
- **#329 (topology epic)** — branch/merge forward+backward is the hard prerequisite: Add-merge node, gradient accumulation at the fork.
- 2D variant additionally blocked by **#330** (2D layer family). The 1D variant has no other missing kernels.
## Notes
- The 1D variant should ship first: the Conv1d family and Add arithmetic exist, so a residual block is the *minimal* consumer of #329's Add-merge — a good acceptance vehicle for the epic itself.
- Projection shortcut = Conv1d/Conv2d with kernel size 1 — no new kernel needed.
- SYM configs: the merge-add of two differently-scaled SYM wires depends on #329's quantized-merge semantics; keep the first residual example FLOAT32 until that spec lands.
## Acceptance
A small residual CNN example (HAR or ECG variant) with a PyTorch twin; trajectory comparison over ≥10 seeds per repo rule.
Contributor guide
Research direction
Start with blocker #329 to understand the Add-merge node and gradient accumulation, then inspect the existing Conv1d family and Add arithmetic. The 1D residual example should be implemented first; done means a small HAR or ECG CNN has a PyTorch twin and trajectory comparisons across at least 10 seeds, using FLOAT32 for the initial merge.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, pytorch
- Domain
- embedded-iot, machine-learning
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100