qriton commited on
Commit
986e0f9
·
verified ·
1 Parent(s): d315ed7

Publish sanitized HLM small winner model

Browse files
Files changed (5) hide show
  1. .gitattributes +1 -35
  2. README.md +54 -0
  3. config.json +43 -0
  4. metrics.jsonl +114 -0
  5. model.pt +3 -0
.gitattributes CHANGED
@@ -1,35 +1 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.pt filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: pytorch
4
+ pipeline_tag: audio-classification
5
+ tags:
6
+ - hlm-micro
7
+ - polynomial-hopfield
8
+ - edge-ai
9
+ - keyword-spotting
10
+ - speech-commands
11
+ - tinyml
12
+ - real-data
13
+ datasets:
14
+ - speech-commands-v2
15
+ ---
16
+
17
+ # HLM-Micro Keyword Spotting v1 - Speech Commands
18
+
19
+ HLM-Micro Keyword Spotting v1 is a compact polynomial-Hopfield keyword spotter trained on the Google Speech Commands V2 12-class TinyML-style subset.
20
+
21
+ ## Results
22
+
23
+ | Field | Value |
24
+ |---|---:|
25
+ | Parameters | 184,449 |
26
+ | Classes | 12 |
27
+ | Reported best validation accuracy | 92.09% |
28
+ | Final validation accuracy | 92.01% |
29
+ | Best checkpoint | epoch 6 of 8 |
30
+
31
+ Classes: `yes`, `no`, `up`, `down`, `left`, `right`, `on`, `off`, `stop`, `go`, `_silence_`, `_unknown_`.
32
+
33
+ This is a realistic small keyword-spotting result, not a state-of-the-art accuracy claim. The test split is intentionally not claimed here.
34
+
35
+ ## Files
36
+
37
+ | File | Purpose |
38
+ |---|---|
39
+ | `model.pt` | Sanitized model-only PyTorch checkpoint |
40
+ | `config.json` | Public architecture, task, classes, and metric metadata |
41
+ | `metrics.jsonl` | Training/evaluation metrics from the local run |
42
+
43
+ ## Intended Use
44
+
45
+ - Research on compact keyword spotting.
46
+ - TinyML and edge-audio experiments.
47
+ - Baseline for adding replayable audit metadata to edge classifiers.
48
+
49
+ ## Limitations
50
+
51
+ - Metric reported here is validation accuracy, not final held-out test accuracy.
52
+ - Not optimized with the full augmentation/training recipe used by top keyword-spotting systems.
53
+ - Not a wake-word product or production speech interface.
54
+
config.json ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architecture": "HLM-Micro",
3
+ "class_names": [
4
+ "yes",
5
+ "no",
6
+ "up",
7
+ "down",
8
+ "left",
9
+ "right",
10
+ "on",
11
+ "off",
12
+ "stop",
13
+ "go",
14
+ "_silence_",
15
+ "_unknown_"
16
+ ],
17
+ "config": {
18
+ "converge_eps": 0.001,
19
+ "hidden_dim": 128,
20
+ "init_log_beta": 2.0,
21
+ "input_dim": 32,
22
+ "max_iter": 5,
23
+ "max_seq_len": 64,
24
+ "modality_tag_bits": 2,
25
+ "num_basins": 48,
26
+ "num_classes": 12,
27
+ "num_layers": 5,
28
+ "poly_degree": 3,
29
+ "stem_kernel": 7,
30
+ "stem_stride": 2,
31
+ "tau_end": 0.1,
32
+ "tau_start": 0.9
33
+ },
34
+ "dataset": "Google Speech Commands V2",
35
+ "dataset_detail": "canonical TinyML 12-class keyword-spotting subset",
36
+ "epoch": 6,
37
+ "license": "apache-2.0",
38
+ "metric_source": "best validation checkpoint, epoch 6 of 8; test split held out",
39
+ "release_note": "Sanitized model-only checkpoint prepared for public Hugging Face publication.",
40
+ "step": 7950,
41
+ "task": "keyword-spotting",
42
+ "validation_accuracy": 0.9209
43
+ }
metrics.jsonl ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"epoch": 1, "step": 100, "loss": 1.602038025856018, "acc": 0.59375}
2
+ {"epoch": 1, "step": 200, "loss": 1.580732822418213, "acc": 0.5625}
3
+ {"epoch": 1, "step": 300, "loss": 1.2249830961227417, "acc": 0.703125}
4
+ {"epoch": 1, "step": 400, "loss": 1.0877366065979004, "acc": 0.734375}
5
+ {"epoch": 1, "step": 500, "loss": 1.1730610132217407, "acc": 0.734375}
6
+ {"epoch": 1, "step": 600, "loss": 1.2152729034423828, "acc": 0.65625}
7
+ {"epoch": 1, "step": 700, "loss": 1.05234956741333, "acc": 0.703125}
8
+ {"epoch": 1, "step": 800, "loss": 0.9481310844421387, "acc": 0.734375}
9
+ {"epoch": 1, "step": 900, "loss": 0.9922405481338501, "acc": 0.6875}
10
+ {"epoch": 1, "step": 1000, "loss": 0.8875313401222229, "acc": 0.734375}
11
+ {"epoch": 1, "step": 1100, "loss": 0.8176994323730469, "acc": 0.765625}
12
+ {"epoch": 1, "step": 1200, "loss": 1.1437203884124756, "acc": 0.625}
13
+ {"epoch": 1, "step": 1300, "loss": 0.8999794125556946, "acc": 0.734375}
14
+ {"epoch": 1, "step": 1325, "val_acc": 0.7101492836389139}
15
+ {"epoch": 2, "step": 1400, "loss": 0.8152531385421753, "acc": 0.734375}
16
+ {"epoch": 2, "step": 1500, "loss": 0.977674663066864, "acc": 0.734375}
17
+ {"epoch": 2, "step": 1600, "loss": 0.8510524034500122, "acc": 0.734375}
18
+ {"epoch": 2, "step": 1700, "loss": 0.7878601551055908, "acc": 0.734375}
19
+ {"epoch": 2, "step": 1800, "loss": 0.6588672399520874, "acc": 0.8125}
20
+ {"epoch": 2, "step": 1900, "loss": 0.8677489161491394, "acc": 0.765625}
21
+ {"epoch": 2, "step": 2000, "loss": 0.8591001033782959, "acc": 0.734375}
22
+ {"epoch": 2, "step": 2100, "loss": 0.5424904823303223, "acc": 0.84375}
23
+ {"epoch": 2, "step": 2200, "loss": 0.7590727210044861, "acc": 0.75}
24
+ {"epoch": 2, "step": 2300, "loss": 0.6449681520462036, "acc": 0.8125}
25
+ {"epoch": 2, "step": 2400, "loss": 0.5318771600723267, "acc": 0.828125}
26
+ {"epoch": 2, "step": 2500, "loss": 0.5413998961448669, "acc": 0.859375}
27
+ {"epoch": 2, "step": 2600, "loss": 0.5646920204162598, "acc": 0.84375}
28
+ {"epoch": 2, "step": 2650, "val_acc": 0.8465083658952008}
29
+ {"epoch": 3, "step": 2700, "loss": 0.5305834412574768, "acc": 0.75}
30
+ {"epoch": 3, "step": 2800, "loss": 0.5716837644577026, "acc": 0.828125}
31
+ {"epoch": 3, "step": 2900, "loss": 0.49493956565856934, "acc": 0.890625}
32
+ {"epoch": 3, "step": 3000, "loss": 0.409970223903656, "acc": 0.8125}
33
+ {"epoch": 3, "step": 3100, "loss": 0.3746277987957001, "acc": 0.921875}
34
+ {"epoch": 3, "step": 3200, "loss": 0.6051967740058899, "acc": 0.84375}
35
+ {"epoch": 3, "step": 3300, "loss": 0.7760466933250427, "acc": 0.765625}
36
+ {"epoch": 3, "step": 3400, "loss": 0.38414230942726135, "acc": 0.890625}
37
+ {"epoch": 3, "step": 3500, "loss": 0.4355711340904236, "acc": 0.921875}
38
+ {"epoch": 3, "step": 3600, "loss": 0.43432357907295227, "acc": 0.84375}
39
+ {"epoch": 3, "step": 3700, "loss": 0.34726595878601074, "acc": 0.890625}
40
+ {"epoch": 3, "step": 3800, "loss": 0.41739097237586975, "acc": 0.84375}
41
+ {"epoch": 3, "step": 3900, "loss": 0.6660413146018982, "acc": 0.78125}
42
+ {"epoch": 3, "step": 3975, "val_acc": 0.8866847009317703}
43
+ {"epoch": 4, "step": 4000, "loss": 0.260433554649353, "acc": 0.90625}
44
+ {"epoch": 4, "step": 4100, "loss": 0.3286454379558563, "acc": 0.90625}
45
+ {"epoch": 4, "step": 4200, "loss": 0.4060392379760742, "acc": 0.84375}
46
+ {"epoch": 4, "step": 4300, "loss": 0.31971532106399536, "acc": 0.9375}
47
+ {"epoch": 4, "step": 4400, "loss": 0.3724919855594635, "acc": 0.859375}
48
+ {"epoch": 4, "step": 4500, "loss": 0.4544152617454529, "acc": 0.84375}
49
+ {"epoch": 4, "step": 4600, "loss": 0.47898730635643005, "acc": 0.859375}
50
+ {"epoch": 4, "step": 4700, "loss": 0.28650906682014465, "acc": 0.9375}
51
+ {"epoch": 4, "step": 4800, "loss": 0.36063557863235474, "acc": 0.921875}
52
+ {"epoch": 4, "step": 4900, "loss": 0.3202344477176666, "acc": 0.90625}
53
+ {"epoch": 4, "step": 5000, "loss": 0.11639194935560226, "acc": 0.984375}
54
+ {"epoch": 4, "step": 5100, "loss": 0.3318994641304016, "acc": 0.921875}
55
+ {"epoch": 4, "step": 5200, "loss": 0.32754892110824585, "acc": 0.890625}
56
+ {"epoch": 4, "step": 5300, "loss": 0.1724736988544464, "acc": 0.9375}
57
+ {"epoch": 4, "step": 5300, "val_acc": 0.9021140166316001}
58
+ {"epoch": 5, "step": 5400, "loss": 0.3033972680568695, "acc": 0.875}
59
+ {"epoch": 5, "step": 5500, "loss": 0.17876335978507996, "acc": 0.953125}
60
+ {"epoch": 5, "step": 5600, "loss": 0.25255802273750305, "acc": 0.921875}
61
+ {"epoch": 5, "step": 5700, "loss": 0.20687361061573029, "acc": 0.9375}
62
+ {"epoch": 5, "step": 5800, "loss": 0.3545200228691101, "acc": 0.890625}
63
+ {"epoch": 5, "step": 5900, "loss": 0.27279818058013916, "acc": 0.890625}
64
+ {"epoch": 5, "step": 6000, "loss": 0.20376765727996826, "acc": 0.953125}
65
+ {"epoch": 5, "step": 6100, "loss": 0.24107350409030914, "acc": 0.90625}
66
+ {"epoch": 5, "step": 6200, "loss": 0.5365137457847595, "acc": 0.84375}
67
+ {"epoch": 5, "step": 6300, "loss": 0.2744140923023224, "acc": 0.90625}
68
+ {"epoch": 5, "step": 6400, "loss": 0.0858885645866394, "acc": 0.984375}
69
+ {"epoch": 5, "step": 6500, "loss": 0.44421783089637756, "acc": 0.84375}
70
+ {"epoch": 5, "step": 6600, "loss": 0.3909915089607239, "acc": 0.890625}
71
+ {"epoch": 5, "step": 6625, "val_acc": 0.9105300070133253}
72
+ {"epoch": 6, "step": 6700, "loss": 0.2370469570159912, "acc": 0.921875}
73
+ {"epoch": 6, "step": 6800, "loss": 0.2621387839317322, "acc": 0.9375}
74
+ {"epoch": 6, "step": 6900, "loss": 0.19038917124271393, "acc": 0.953125}
75
+ {"epoch": 6, "step": 7000, "loss": 0.1636689454317093, "acc": 0.921875}
76
+ {"epoch": 6, "step": 7100, "loss": 0.12753088772296906, "acc": 0.953125}
77
+ {"epoch": 6, "step": 7200, "loss": 0.2697950601577759, "acc": 0.921875}
78
+ {"epoch": 6, "step": 7300, "loss": 0.24074845016002655, "acc": 0.9375}
79
+ {"epoch": 6, "step": 7400, "loss": 0.253329336643219, "acc": 0.9375}
80
+ {"epoch": 6, "step": 7500, "loss": 0.1529911458492279, "acc": 0.953125}
81
+ {"epoch": 6, "step": 7600, "loss": 0.10909458249807358, "acc": 0.96875}
82
+ {"epoch": 6, "step": 7700, "loss": 0.23701508343219757, "acc": 0.9375}
83
+ {"epoch": 6, "step": 7800, "loss": 0.2083643525838852, "acc": 0.9375}
84
+ {"epoch": 6, "step": 7900, "loss": 0.2778289318084717, "acc": 0.90625}
85
+ {"epoch": 6, "step": 7950, "val_acc": 0.9209498046287947}
86
+ {"epoch": 7, "step": 8000, "loss": 0.16521009802818298, "acc": 0.9375}
87
+ {"epoch": 7, "step": 8100, "loss": 0.13530224561691284, "acc": 0.96875}
88
+ {"epoch": 7, "step": 8200, "loss": 0.0996456891298294, "acc": 0.96875}
89
+ {"epoch": 7, "step": 8300, "loss": 0.20439966022968292, "acc": 0.90625}
90
+ {"epoch": 7, "step": 8400, "loss": 0.28242507576942444, "acc": 0.9375}
91
+ {"epoch": 7, "step": 8500, "loss": 0.12900961935520172, "acc": 0.96875}
92
+ {"epoch": 7, "step": 8600, "loss": 0.1993342936038971, "acc": 0.953125}
93
+ {"epoch": 7, "step": 8700, "loss": 0.16254454851150513, "acc": 0.96875}
94
+ {"epoch": 7, "step": 8800, "loss": 0.1973409205675125, "acc": 0.9375}
95
+ {"epoch": 7, "step": 8900, "loss": 0.14497797191143036, "acc": 0.953125}
96
+ {"epoch": 7, "step": 9000, "loss": 0.2356855422258377, "acc": 0.9375}
97
+ {"epoch": 7, "step": 9100, "loss": 0.14645744860172272, "acc": 0.9375}
98
+ {"epoch": 7, "step": 9200, "loss": 0.17589455842971802, "acc": 0.953125}
99
+ {"epoch": 7, "step": 9275, "val_acc": 0.9205490431820459}
100
+ {"epoch": 8, "step": 9300, "loss": 0.14619815349578857, "acc": 0.9375}
101
+ {"epoch": 8, "step": 9400, "loss": 0.10954932123422623, "acc": 0.96875}
102
+ {"epoch": 8, "step": 9500, "loss": 0.10937822610139847, "acc": 0.984375}
103
+ {"epoch": 8, "step": 9600, "loss": 0.1374478042125702, "acc": 0.9375}
104
+ {"epoch": 8, "step": 9700, "loss": 0.1757202446460724, "acc": 0.9375}
105
+ {"epoch": 8, "step": 9800, "loss": 0.15574119985103607, "acc": 0.921875}
106
+ {"epoch": 8, "step": 9900, "loss": 0.28316599130630493, "acc": 0.921875}
107
+ {"epoch": 8, "step": 10000, "loss": 0.24554650485515594, "acc": 0.9375}
108
+ {"epoch": 8, "step": 10100, "loss": 0.10693629086017609, "acc": 0.984375}
109
+ {"epoch": 8, "step": 10200, "loss": 0.08797921240329742, "acc": 0.96875}
110
+ {"epoch": 8, "step": 10300, "loss": 0.156710684299469, "acc": 0.921875}
111
+ {"epoch": 8, "step": 10400, "loss": 0.15344248712062836, "acc": 0.96875}
112
+ {"epoch": 8, "step": 10500, "loss": 0.2875604033470154, "acc": 0.921875}
113
+ {"epoch": 8, "step": 10600, "loss": 0.1864950954914093, "acc": 0.96875}
114
+ {"epoch": 8, "step": 10600, "val_acc": 0.9201482817352971}
model.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5722e96175d9d8822b681ca85481335bb1d517d1a4fb129ca947f833eef030d9
3
+ size 750061