Paper deep dive
Few-Shot Prototype Head Adaptation for On-Device ECG Personalization on PSoC~6
Guilherme Silva, Pedro Silva, Gladston Moreira, Eduardo Luz
Intelligence
Status: not_run | Model: - | Prompt: - | Confidence: 0%
Entities (0)
Relation Signals (0)
No relation signals yet.
Cypher Suggestions (0)
No Cypher suggestions yet.
Abstract
Abstract:Wearable and bedside electrocardiogram (ECG) monitors must adapt to patient-specific morphology to maintain arrhythmia detection accuracy across users, yet personalization is typically performed offline and cannot account for individual physiology, electrode placement, or recording drift. On-device adaptation by backpropagation is expensive for microcontroller-class medical devices because it requires an optimizer state, repeated backward passes through convolutional layers, and labeled arrhythmic beats that may not be available at deployment time. This letter proposes prototype-only head adaptation as a compact personalization primitive for TinyML ECG systems. A one-dimensional convolutional neural network (1-D CNN; 1,314 parameters and 72.6k multiply-accumulate operations per beat) is trained offline on the MIT-BIH Arrhythmia Database under an inter-patient protocol, frozen as a feature extractor, and exported to a PSoC 6 microcontroller. Patient-specific adaptation then reduces to computing closed-form class means in a 32-dimensional embedding space, requiring no convolutional backward pass, no iterative optimization, and only one forward pass per support beat. Prototype adaptation improves inter-patient macro-F1 from 0.635/0.639/0.646 to 0.731/0.771/0.797 at 1/5/10-shot, outperforming linear stochastic-gradient-descent (SGD) head fine-tuning at every shot count for the target tiny backbone. On-device replay over 18 one-shot episodes on a PSoC 6 Cortex-M4F matches the host macro-F1 for the prototype head (0.798), with 11.39 ms per beat, 5.2 KB flash, and 22.2 KB SRAM. A restricted variant that updates only the normal-class prototype from passively buffered sinus beats yields a consistent +0.05 macro-F1 gain, reducing the annotation burden during initial
Tags
Links
- Source: https://arxiv.org/abs/2610.06241v1
- Canonical: https://arxiv.org/abs/2610.06241v1
Trouble viewing inline? Open PDF directly →
Full Text
24,173 characters extracted from source content.
Expand or collapse full text
FEW-SHOT PROTOTYPE HEAD ADAPTATION FOR ON-DEVICE ECG PERSONALIZATION ON PSOC 6 ∗ Guilherme A. L. Silva 1 , Pedro H. L. Silva 2 , Gladston J. P. Moreira 2 and Eduardo J. da S. Luz 2 1 Computing Department, Universidade Federal de São João del-Rei – São João del-Rei, Brazil guilherme.silva@ufsj.edu.br 2 Computing Department, Federal University of Ouro Preto – Ouro Preto, Brazil ABSTRACT Wearable and bedside electrocardiogram (ECG) monitors must adapt to patient-specific morphology to maintain arrhythmia detection accuracy across users, yet personalization is typically performed offline and cannot account for individual physiology, electrode placement, or recording drift. On- device adaptation by backpropagation is expensive for microcontroller-class medical devices because it requires an optimizer state, repeated backward passes through convolutional layers, and labeled arrhythmic beats that may not be available at deployment time. This letter proposes prototype-only head adaptation as a compact personalization primitive for TinyML ECG systems. A one-dimensional convolutional neural network (1-D CNN; 1,314 parameters and 72.6k multiply–accumulate operations per beat) is trained offline on the MIT-BIH Arrhythmia Database under an inter-patient protocol, frozen as a feature extractor, and exported to a PSoC 6 microcontroller. Patient-specific adaptation then reduces to computing closed-form class means in a 32-dimensional embedding space, requiring no convolutional backward pass, no iterative optimization, and only one forward pass per support beat. Prototype adaptation improves inter-patient macro-F1 from 0.635/0.639/0.646 to 0.731/0.771/0.797 at 1/5/10-shot, outperforming linear stochastic-gradient-descent (SGD) head fine-tuning at every shot count for the target tiny backbone. On-device replay over 18 one-shot episodes on a PSoC 6 Cortex-M4F matches the host macro-F1 for the prototype head (0.798), with 11.39 ms per beat, 5.2 KB flash, and 22.2 KB SRAM. A restricted variant that updates only the normal-class prototype from passively buffered sinus beats yields a consistent +0.05 macro-F1 gain, reducing the annotation burden during initial deployment. Keywords EEG Classification· Arrhythmia· PSoC· Embedded Systems. 1 Introduction Patient-specific ECG morphology varies with physiology, electrode placement, and recording conditions, causing models trained on one population to degrade on unseen individuals under inter-patient evaluation protocols [1]. Wearable and bedside arrhythmia monitors, therefore, need a mechanism to personalize a deployed classifier for each new user without re-running a full training pipeline in the cloud. Tiny machine learning (TinyML) has made neural-network inference feasible on microcontroller-class IoT devices [2,3], bringing the classifier physically close to the sensor, but the question of how to adapt that classifier on the same constrained device remains open. Two barriers make on-device ECG personalization hard. The first is computational. Backpropagation through convolutional layers requires optimizer state, repeated backward passes, and working memory that exceeds the budget of sub-milliwatt medical microcontrollers. Prior work has shown that on-device training is possible under 256 KB SRAM [4] and that 1-D CNN personalization for human activity recognition is feasible on STM32 hardware [5], yet ∗ The authors would also like to thank the Fundacão de Amparo à Pesquisa do Estado de Minas Gerais (FAPEMIG, grants APQ-01768-24), Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - Brazil (CAPES) - Finance Code 001, Conselho Nacional de Desenvolvimento Científico e Tecnológico and Universidade Federal de Ouro Preto (PROPPI/UFOP) for supporting the development of this study. arXiv:2610.06241v1 [cs.LG] 5 Oct 2026 Few-Shot Prototype Head Adaptation for On-Device ECG Personalization on PSoC 6 both approaches rely on gradient-based updates that are costly relative to a medical device’s strict power and latency envelope. The second barrier is annotation. Since arrhythmic events are rare, the newly deployed monitor accumulates hundreds of normal sinus beats before a single labeled abnormal beat is available. Gradient-based head fine-tuning cannot begin calibration from normal-only data because it requires labeled examples from every class to update the weight matrix meaningfully. Self-supervised and human-in-the-loop methods have highlighted this gap but remain constrained by limited medical equipment resources [6]. This letter addresses both barriers with a prototype-only head adaptation mechanism. A compact 1-D CNN (1,314 parameters, 72.6k multiply–accumulate operations – MACs – per beat) is trained offline on the MIT-BIH Arrhythmia Database [7] under the inter-patient protocol [1], and its convolutional backbone is then frozen and exported to a PSoC 6 microcontroller. Patient-specific adaptation reduces to computing closed-form class means in a 32-dimensional embedding space, one forward pass per support beat, no backward pass, no optimizer state. A restricted variant further reduces the annotation burden by updating only the normal-class prototype from passively buffered sinus beats, inheriting the abnormal prototype from offline training. We verify the proposal through three complementary evaluations. (i) Accuracy: prototype adaptation improves inter- patient macro-F1 from 0.635/0.639/0.646 to 0.731/0.771/0.797 at 1/5/10-shot on eligible DS2 patients (vs. 0.664 pre-adaptation on all 22 DS2 records), outperforming a linear-SGD head baseline on a tiny backbone neural network. The restricted normal-only variant yields a consistent +0.05 macro-F1 gain without any arrhythmia annotations. (i) On- device fidelity: aggregate replay over one-shot DS2 episodes on the target Cortex-M4F matches host macro-F1 (0.798 macro-F1, absolute deviation 0.000), confirming that the closed-form update is numerically faithful on fp32 hardware. (i) Embedded cost: Data Watchpoint and Trace (DWT) cycle counter profiling reports 11.39 ms per beat (2.8% of the 400 ms R interval at 150 BPM), with a model-centric footprint of 5.2 KB flash and 22.2 KB SRAM on a device with 1 MB flash and 288 KB SRAM. 2 Prototype-Only Head Adaptation Fig. 1 summarizes the deployment flow. In the offline phase, a compact 1-D CNN is trained on DS1. At export time, the convolutional backbone is frozen and stored as constantCarrays. At deployment, support beats from the target patient are passed through the frozen backbone, and only the classification head is adapted. Figure 1: Prototype-only ECG personalisation pipeline. Offline: a compact 1-D CNN is trained on DS1 under an inter-patient split; the frozen backbone is exported as native-C arrays. On-device (PSoC 6): the backbone maps support beats to 32-D embeddings; per-class prototypes are computed as closed-form means. Query beats are classified by nearest-prototype distance—with no backward pass, no optimizer state, and no backbone writes. Each ECG beat is represented as a 200-sample window centered at an annotated R-peak. The target backbone has two convolutional blocks(1→8→16), each with a kernel size of 5, ReLU, max-pooling, global average pooling, and a linear projection toD = 32. A 2-way head map embedding to normal/abnormal logits. The tiny model has 1,314 parameters and 72,576 MACs per beat; medium and large variants (Table 3) scale to 2,618/157k and 4,930/274k, respectively. Beat 2 Few-Shot Prototype Head Adaptation for On-Device ECG Personalization on PSoC 6 segmentation and R-peak detection are assumed to be provided upstream by the monitoring system; this work focuses on the embedded personalization primitive. Letf θ :R 200 →R D denote the frozen backbone, withD = 32. In the full few-shot setting, the patient-specific support set is S =(x i , y i ) K·C i=1 ,(1) where x i ∈R 200 , y i ∈0, . . . , C− 1, C = 2, and K is the number of support beats per class. For class c, define S c =x i | (x i , y i )∈ S, y i = c,(2) with|S c | = Kin the balanced protocol. Each support beat is embedded asz i = f θ (x i ), and the class prototype is the mean embedding p c = 1 |S c | X x i ∈S c f θ (x i ).(3) Although richer prototype estimators have been proposed in recent few-shot learning work, including task-guided diffusion [8] and prototype–neighbor hybrid methods [9], these approaches typically rely on meta-training, auxiliary networks, or iterative inference. Such mechanisms are not aligned with the memory and latency constraints of a Cortex-M4F deployment. We, therefore, deliberately use the closed-form class mean, since it is the simplest estimator, requires only support-set inference and vector additions, and remains effective when the frozen backbone yields a compact embedding space. A query beatx q is embedded by the frozen backbone and scored against each prototype using the negative squared Euclidean distance: s c (x q ) =−∥f θ (x q )− p c ∥ 2 2 .(4) The predicted class is ˆy(x q ) = arg max c s c (x q ) = arg min c ∥f θ (x q )− p c ∥ 2 2 .(5) This update requires only support-set inference and class-wise additions in a 32-D space. It avoids storing the optimizer state and avoids backward propagation through the convolutional layers. Support beats from each class cluster around their respective centroids in the frozen embedding space, and the resulting prototypes define patient-specific decision boundaries without any gradient steps. We compare it against a linear-SGD head baseline, in which the frozen backbone is held fixed while the final linear layer is updated for 50 SGD steps using cross-entropy. The per-class structure of the prototype update enables a clinically important restricted variant. In routine monitoring, arrhythmic beats are rare, and a device may accumulate hundreds of normal sinus beats before any arrhythmic event occurs, making annotation-dependent calibration impractical. We therefore evaluate a setting in which only normal-beat support is used;p 0 is updated via Equation(3)whilep 1 is inherited from DS1 training, enabling passive annotation-free calibration that begins as soon as sufficient normal beats have been buffered. 3 Protocol and PSoC 6 Implementation Experiments use the MIT-BIH Arrhythmia Database [7] under the inter-patient split of de Chazal et al. [1]. Dataset 1 (DS1) is used for training/validation, and dataset 2 (DS2), for held-out testing. The task is binary normal-versus- abnormal classification, where the abnormal class pools non-normal morphologies. We report macro-F1 to account for imbalance. The abnormal class pools structurally distinct morphologies (LBBB, RBBB, PVC, APB), justifying macro-F1 as the primary metric. Few-shot personalization usesK ∈1, 5, 10support examples per class. Records without at least K + 1 minority-class beats are excluded for that shot count. Firmware validation targets the CY8CPROTO-063-BLE board, which integrates a PSoC 6 BLE device with a Cortex- M4F application core and 1 MB Flash / 288 KB SRAM [10]. The replay firmware stores exported weights and capped support/query episodes in flash, executes the frozen backbone and both head rules on the CM4, and logs metrics over UART. DWT cycle counts are collected from the CM4 Release build. The measured HF0 clock during profiling is 100 MHz. Table 1 reports the model-centric memory budget for the deployable adaptation path. We report this separately from the full replay firmware image, which also contains board-support code, UART/profiling logic, the C runtime, and embedded replay assets. The source code to fully reproduce the work is available inhttps://github.com/ eduluzufop/TinyML-ECG-Prototype-Adaptation. 3 Few-Shot Prototype Head Adaptation for On-Device ECG Personalization on PSoC 6 Table 1: Model-centric memory budget of the deployable adaptation path on PSoC 6. Weights are stored asfloat32 constants in flash. ItemFlashSRAM Backbone weights4.9 KB– Head/prototypes0.3 KB0.3 KB Peak activation buffer–6.3 KB Support buffer, K = 10–15.6 KB Subtotal5.2 KB22.2 KB PSoC 6 budget1024 KB288 KB Utilization0.5%7.7% 4 Results Table 2 summarizes the accuracy and measured embedded costs for the target tiny backbone. Prototype adaptation consistently outperforms the pre-adaptation model and linear SGD. On the full eligible DS2 protocol, prototypes improve macro-F1 from 0.635 to 0.731 at 1-shot, from 0.639 to 0.771 at 5-shot, and from 0.646 to 0.797 at 10-shot. Linear SGD improves over the baseline but remains lower across all shot counts. Table 2: Accuracy and embedded cost for the target tiny backbone. Device F1 is computed on the capped 18-record 1-shot replay subset. Timing is measured with the Arm Data Watchpoint and Trace (DWT) cycle counter on the PSoC 6 CM4. MethodKDS2 F1Device F1Adapt. time No adaptation–0.664 † 0.611– Linear SGD10.6710.68224.49 ms Prototype10.7310.79822.83 ms Prototype50.771–114.03 ms Prototype100.797–228.04 ms Normal-only proto100.699– ≈10 ms ∗ † Pre-adaptation F1 on all 22 DS2 records; shot-specific baselines are 0.635/0.639/0.646 due to eligibility filtering. ∗ Host reference for the restricted update. Fig. 2 shows that the prototype F1 curve rises monotonically from 0.731 to 0.797 asKincreases, while SGD gains are smaller, and that prototype calibration is 17× faster than SGD at 1-shot in the host reference implementation (216 ms vs. 3690 ms; on-device, the gap is negligible at 22.83 ms vs. 24.49 ms). The pre-adaptation baseline rises withK because the eligibility filter progressively removes the harder, more class-imbalanced records rather than reflecting any adaptation benefit. The aggregate on-device replay benchmark replaces a single-episode sanity check with hardware evidence over 18 DS2 1-shot episodes and 576 query beats. The device-side macro-F1 values are 0.611, 0.682, and 0.798 for pre-adaptation, linear SGD, and prototypes, respectively. Compared with the host reference on the exact same capped subset, the absolute differences are 0.000, 0.007, and 0.000. This confirms that the replay, embedding extraction, and prototype update remain faithful on target hardware. The normal-only calibration mode is weaker than full prototype adaptation but is clinically meaningful. AtK = 10, it reaches 0.699 macro-F1 on the common eligible subset, compared with 0.649 before adaptation and 0.797 with full prototype support. This indicates that patient-specific normal morphology alone can shift the decision geometry in a useful direction, even though it cannot replace labeled abnormal support. Fig. 3 shows that the gain is consistent across all shot counts (+0.045–0.050 macro-F1), representing roughly one-third of the full prototype improvement at K=10without requiring any arrhythmia annotation from the target patient. This is the intended deployment role of the restricted mode, an initial calibration step based on abundant (normal) sinus beats. Measured DWT profiling reports 1,139,141 cycles per beat for the tiny backbone, corresponding to 11.39 ms at 100 MHz, 2.8% of the 400 ms beat-to-beat interval (a.k.a R interval) at 150 BPM, confirming that the device classifies each beat in time even at clinically elevated heart rates. Fig. 4 plots end-to-end calibration time on the CM4 as a function ofKfor both methods. Both curves grow linearly withKbecause each method requires one backbone forward pass per support beat. The narrow gap between them reflects only the head-update rule (closed-form mean vs. 50 SGD iterations). A 10-shot prototype calibration takes 228.04 ms (22,804,485 cycles), and the corresponding SGD 4 Few-Shot Prototype Head Adaptation for On-Device ECG Personalization on PSoC 6 1510 Support shots per class (K) 0.60 0.65 0.70 0.75 0.80 Macro-F1 (a) DS2 macro-F1 Pre Linear SGD Prototypes 1510 Support shots per class (K) 0 1000 2000 3000 4000 Adaptation time (ms) (b) Reference adaptation cost Linear SGD Prototypes Figure 2: Aggregate DS2 results across shot counts. Left: macro-F1 for each method. Right: software-side adaptation time from the host reference implementation. The pre-adaptation curve rises withKbecause the eligibility filter excludes harder records, not due to any adaptation effect. 1510 Support shots (K, normal class only for restricted) 0.60 0.65 0.70 0.75 0.80 Macro-F1 (a) Macro-F1 comparison Pre Restr. proto Full proto 1510 Support shots (K) 0 50 100 150 200 250 Adaptation time (ms) (b) Reference adaptation cost Restricted Full proto Figure 3: Restricted vs. full prototype adaptation on the common eligible DS2 subset. The restricted variant (only normal-beat support from the target patient) provides a consistent positive gain at a fraction of the cost of full prototype adaptation. calibration takes 244.66 ms, both within the 400 ms R interval, so calibration is a short initialization event rather than a recurring per-beat cost. Table 3 evaluates whether the prototype advantage is preserved under backbone scaling. The tiny backbone is both the primary embedded target and the setting where prototypes most consistently outperform SGD. Larger backbones narrow or reverse this advantage at low shot counts, indicating that the prototype-versus-SGD trade-off is capacity-dependent rather than a universal property of the head-adaptation approach. Table 3: Scaling study across backbone sizes. DS2 test F1 is reported before personalization. Few-shot columns show the best retuned head-adaptation method. VariantParamsMACsPre F11-shot10-shot Tiny1,31472.6k0.664Proto .731Proto .797 Medium2,618157.0k0.642SGD .713Proto .764 Large4,930274.2k0.651SGD .720Proto .759 5 Few-Shot Prototype Head Adaptation for On-Device ECG Personalization on PSoC 6 10 2 10 3 10 4 MACs Conv1 (8k) Conv2 (64k) Proj (0.5k) Head (0.06k) 8,000 64,000 512 64 (a) Operation count 1510 Support shots (K) 10 2 10 3 Adaptation time (ms) (b) Adaptation cost MCU proto (meas.) MCU SGD (meas.) SW proto (ref.) SW SGD (ref.) 0200400 Time after R-peak (ms) Head clas. 10-shot adapt. Infer. Post-R wait R interval R = 400 ms Post-R 306 ms 11.4 ms 228 ms <0.01 ms (c) 150 BPM timeline Figure 4: End-to-end calibration time on the PSoC 6 CM4 at 100 MHz vs. number of support shotsKfor prototype and linear SGD adaptation. Both methods scale linearly withK(one backbone forward pass per support beat); the gap between the two curves is due solely to the head-update rule. The 400 ms R interval at 150 BPM is shown for clinical reference. The consistent prototype advantage on the tiny backbone can be attributed to the geometry of its compressed embedding space. WithD = 32and only 1,314 parameters, the intra-class variance is tightly bounded, making the closed-form mean a stable representative [11], a condition that more expressive estimators such as task-guided diffusion [8] or prototype-neighbor hybrids [9] are designed to relax, at the cost of auxiliary networks and iterative inference that exceed the MCU budget. Larger backbones produce richer manifolds where the mean prototype becomes a less faithful class summary, shifting the advantage toward SGD at low shot counts (Table 3). 5 Discussion, Limitations, and Conclusion For the target tiny backbone, prototype adaptation is preferable to linear SGD because it directly matches the embedded constraint: no convolutional backward pass, no optimizer state, and a closed-form update in a 32-D embedding space. This is particularly attractive for patient-specific ECG calibration, where the support set is extremely small and gradient- based head updates can be ill-conditioned. The result complements prior on-device training work [4] and on-device HAR personalization [5] by exploring a point in the design space where adaptation is reduced to nearest-centroid updates rather than training. The per-class independence of this update also underlies the restricted normal-only variant, becausep 0 andp 1 are updated separately, calibration can begin from passively buffered sinus (normal) beats alone (with no arrhythmia annotation required), a property that SGD-based head fine-tuning does not share, since it requires labeled examples from all classes to update the weight matrix meaningfully. The scaling study shows that larger backbones do not automatically improve inter-patient macro-F1, and they make the prototype-versus-SGD ranking shot-dependent. Therefore, our claim is not that prototypes dominate all personalization regimes, but that they are especially well matched to the target tiny model and MCU deployment path. Since this work focuses on the embedded personalization primitive rather than a complete diagnostic pipeline, beat segmentation and R-peak detection are assumed to be upstream, and the classification task is binary (normal versus abnormal) rather than the full AAMI five-class taxonomy. The aggregate on-device replay uses a flash-capped subset of 18 one-shot DS2 episodes, although it matches the host reference on that subset. The current firmware uses native C float32 kernels rather than an int8 deployment with TensorFlow Lite for Microcontrollers (TFLM) [12]. In conclusion, this letter presents a prototype-only head adaptation mechanism for TinyML ECG personalization on a PSoC 6 microcontroller. By freezing the 1-D CNN backbone and replacing gradient-based head fine-tuning with closed-form class means, the method improves inter-patient macro-F1 for the target tiny model while remaining feasible within a small measured memory and timing footprint. The restricted normal-only variant further demonstrates that a meaningful personalization gain could be achievable from passively buffered normal beats alone, reducing the need for arrhythmia annotations during initial device deployment. Future work will extend the firmware to int8/TFLM, integrate upstream beat detection, and evaluate the full AAMI five-class setting. 6 Few-Shot Prototype Head Adaptation for On-Device ECG Personalization on PSoC 6 References [1]P. de Chazal, M. O’Dwyer, R. B. Reilly, Automatic classification of heartbeats using ecg morphology and heartbeat interval features, IEEE Transactions on Biomedical Engineering 51 (7) (2004) 1196–1206. [2]C. Banbury, V. J. Reddi, P. Torelli, N. Jeffries, C. Kiraly, J. Holleman, P. Montino, D. Kanter, P. Warden, D. Pau, U. Thakker, A. Torrini, J. Cordaro, G. D. Guglielmo, J. Duarte, H. Tran, N. Tran, N. Wenxu, X. Xuesong, MLPerf tiny benchmark, in: NeurIPS 2021, 2021. [3]J. Lin, W.-M. Chen, Y. Lin, J. Cohn, C. Gan, S. Han, Mcunet: Tiny deep learning on iot devices, in: NeurIPS 2020, 2020, p. 11711–11722. [4]J. Lin, L. Zhu, W.-M. Chen, W.-C. Wang, C. Gan, S. Han, On-device training under 256kb memory, in: NeurIPS 2022, 2022, p. 22941–22954. [5]M. Craighero, D. Quarantiello, B. Rossi, D. Carrera, P. Fragneto, G. Boracchi, On-device personalization for human activity recognition on stm32, IEEE Embedded Systems Letters 16 (2) (2024) 106–109.doi: 10.1109/LES.2023.3293458. [6]G. Silva, P. Silva, G. Moreira, E. Luz, Bridging the gap in ecg classification: Integrating self-supervised learning with human-in-the-loop amid medical equipment hardware constraints, in: International Symposium on Applied Reconfigurable Computing, 2024, p. 63–74. [7] G. B. Moody, R. G. Mark, The impact of the mit-bih arrhythmia database, IEEE Engineering in Medicine and Biology Magazine 20 (3) (2001) 45–50. [8]Y. Du, Z. Xiao, S. Liao, C. G. M. Snoek, Protodiff: Learning to learn prototypical networks by task-guided diffusion, in: NeurIPS 2023, 2023, p. 46304–46322. [9]Z. Jiang, Z. Feng, B. Niu, Prototype-neighbor networks with task-specific enhanced meta-learning for few-shot classification, Neural Networks 190 (2025) 107761. doi:10.1016/j.neunet.2025.107761. [10]Infineon Technologies, CY8CPROTO-063-BLE PSoC 6 BLE Prototyping Board Guide, Infineon Technologies (2020). [11] J. Snell, K. Swersky, R. Zemel, Prototypical networks for few-shot learning, in: NeurIPS 2017, 2017, p. 4080–4090. [12]R. David, J. Duke, A. Jain, V. J. Reddi, N. Jeffries, J. Li, N. Kreeger, I. Nappier, M. Natraj, T. Wang, P. Warden, R. Rhodes, Tensorflow lite micro: Embedded machine learning for tinyml systems, in: Proceedings of Machine Learning and Systems, Vol. 3, 2021, p. 800–811. 7