DCSM-Simplified: models
DataCenter Service Management, Simplified.
These are the models behind DCSM-Simplified, an offline data-center component identifier for the Alif Ensemble E8 DevKit (Cortex-M55 + Ethos-U85-256). The board camera identifies the component and shows an info card on the LCD. A keyword spotter on the same NPU drives an inspection checklist by voice. It was built for the Arm + ExecuTorch Edge AI Challenge, SFSU, October 2026.
- Landing page and slides: https://abhijitbetigeri.github.io/executorch-alife8/
- Code, firmware and dataset: https://github.com/abhijitbetigeri/executorch-alife8
- Firmware build:
scripts/alif/build_dcops_demo.shin that repo embeds the twodeployed/.ptefiles.
Deployed models
Current demo firmware: deployed/vision_v4_demo_ft/: the same MobileNetV2, fine-tuned on board-camera frames with loss and scoring over the 6 classes the demo shows. On held-out demo-class board frames it reaches 84.8% top-1; at the demo's 0.6 cutoff, 79% correct, 7% wrong and 0% of background labelled. The vision_v3_board_ft row below is its predecessor, trained over all classes.
| Folder | Model | Task | Accuracy | Size | On the E8 |
|---|---|---|---|---|---|
deployed/vision_v3_board_ft/ |
MobileNetV2, 160x160 NHWC input, 16 classes + background | component classification | 73.0% on held-out board-camera frames, up from 35.5% before the board fine-tune | 2,301 KB .pte |
7.9 ms on the Ethos-U85, 100% of ops on the NPU |
deployed/kws_dscnn_m_agc/ |
DS-CNN, 128 channels, 4 blocks, 79,116 params | keyword spotting, 10 words + silence + unknown | 94.7% test | 93 KB .pte |
0.3 ms on the NPU, plus 3.3 ms MFCC on the M55 |
Each folder holds:
student.pt, the PyTorch state dict*_ethos-u85-256.pte, the ExecuTorch 1.1.0 program for Ethos-U85-256labels.txt,metrics.json,export.jsoncalib.npz, the int8 calibration inputs
The int8 and float vision models agree on 98.4% of calibration frames.
Input. The vision model takes NHWC float32 in [0, 1], shape 1x160x160x3, with ImageNet normalisation folded into the model. The keyword model takes MLEK MFCC features, 49 frames x 10 coefficients.
Classes. Server rack, compute tray, NVLink switch tray, network switch, power shelf, cable, network port, LED indicator, label, fan, cooling manifold, cable cartridge, power connector, drive bay, management port, DPU, and background.
The demo firmware shows only 5 of these, the ones the board camera separates reliably: power shelf, network port, fan, power connector and drive bay. On held-out board frames at a 0.5 confidence cutoff, 73% of component frames are labelled correctly, 6% wrongly, and the rest are left blank. No background frame got a label.
How they were made
- Teachers (
teachers/):- Wave 1. A ConvNeXt-Small trained on pseudo-labelled crops scores 69.4% against auto labels.
- Wave 2. Two ConvNeXt-Base models, trained out-of-fold on 19,203 crops from 2,056 human-labelled photos, score 97.2% on human-labelled validation.
- Students (
students/vision/). The students are MobileNetV2 models distilled from the wave-2 teachers (KD alpha 0.7, T 4), with simulated board-camera augmentation and EMA weights. The base model,v2_r160_kd, scores 91.2% on human-labelled validation. The ablations below were scored on simulated board-camera images:
| Run | What changes | Accuracy |
|---|---|---|
v2_r160_kd (base) |
nothing removed | 0.913 |
v2_r160_nokd |
no distillation | 0.804 |
v2_r160_noaug |
no board-camera augmentation | 0.758 |
v2_r160_kd_mix, v2_r160_kd_mix_e80 |
mixup | 0.814, 0.839 |
r128_kd, r160_kd, r192_kd |
resolution sweep (wave 1, auto labels) | 0.581, 0.653, 0.632 |
- Board-camera fine-tune (
deployed/vision_v3_board_ft/, data indata/board_ft.npz). We recorded 1,330 frames from the E8's own camera while a phone showed a clock-synced slideshow. The split is by slide: 1,119 frames for training, 211 for testing. Training mixed in 1,503 replay crops of the original photos, ran 25 epochs at lr 3e-4, and drew 60% of each batch from board frames. - Keyword spotters (
students/kws/). These are DS-CNNs, distilled and trained with the board's automatic gain emulated. The deployeddscnn_m_agcscores 94.7%. The smallerdscnn_s_agc, with 23,180 parameters, scores 93.9%. - Export. Each model goes through
torch.export, then PT2E int8 quantization withEthosUQuantizer(symmetric, per channel), thenEthosUPartitioner, then TOSA and Vela 4.5.0 (ethos-u85-256, Shared_Sram), and finally Cortex-M passes produce the.pte. The ExecuTorch version is pinned to 1.1.0 to match the MLEK runtime in the firmware.
Use
import torch
from student_model import StudentNHWC # dcops/student_model.py in the GitHub repo
m = StudentNHWC(17, 160, pretrained=False)
m.load_state_dict(torch.load("deployed/vision_v3_board_ft/student.pt", map_location="cpu"))
probs = torch.softmax(m(x_nhwc_0_1), 1) # x: 1x160x160x3 float in [0, 1]
Data and license
The component photos come from Roboflow Universe datasets under CC BY 4.0: Server Vision, Server
Rack, PC Ports, Ports and Server Detection. Links are in dcops/data/README.md in the GitHub repo.
These weights are released under CC BY 4.0. The data/board_ft.npz file holds the E8 camera frames
and the replay crops used for the fine-tune.
- Downloads last month
- 130