<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "https://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" article-type="review-article" dtd-version="1.2" xml:lang="en">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">IJESD</journal-id>
<journal-title-group><journal-title>International Journal of Embedded Systems and Design</journal-title></journal-title-group>
<publisher><publisher-name>Thomson &amp; Ryberg Publications</publisher-name></publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.62715/ijesd.2026.v1.i1.pp8-13</article-id>
<article-id pub-id-type="publisher-id">3a83570c54</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Review Article</subject></subj-group></article-categories>
<title-group><article-title>Tiny Machine Learning on Microcontrollers: Model Compression Techniques and Deployment Toolchains</article-title></title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes"><name><surname>Figueroa</surname><given-names>Siddharth</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1">*</xref></contrib>
<contrib contrib-type="author"><name><surname>Jimenez</surname><given-names>Dawit</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib>
<contrib contrib-type="author"><name><surname>Choi</surname><given-names>Lilit</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref></contrib>
<aff id="aff1"><label>1</label>Department of Electrical Electronics, Anatolian Graduate Institute of Electrical Electronics, France</aff>
<aff id="aff2"><label>2</label>Department of Electrical Electronics, Chao Phraya University Centre for Electrical Electronics, Nepal</aff>
<aff id="aff3"><label>3</label>Department of Electrical Electronics, Anatolian Research Institute of Electrical Electronics, Bahrain</aff>
</contrib-group>
<author-notes><corresp id="cor1">* Correspondence: <email>siddharth.figueroa@anatolian.edu</email></corresp></author-notes>
<pub-date pub-type="epub" iso-8601-date="2026-05-06"><day>06</day><month>05</month><year>2026</year></pub-date>
<volume>1</volume>
<issue>1</issue>
<fpage>8</fpage>
<lpage>13</lpage>
<history>
<date date-type="received" iso-8601-date="2025-12-14"><day>14</day><month>12</month><year>2025</year></date>
<date date-type="accepted" iso-8601-date="2026-02-22"><day>22</day><month>02</month><year>2026</year></date>
</history>
<permissions><copyright-statement>© 2026 The Author(s)</copyright-statement><copyright-year>2026</copyright-year><license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/"><license-p>This is an open access article distributed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).</license-p></license></permissions>
<self-uri xlink:href="https://trpub.org/article.php?id=3a83570c54"/>
<abstract><p>Running neural networks on microcontrollers, a practice now widely called tiny machine learning, places inference on devices with kilobytes of memory, no operating system and a power budget measured in milliwatts or less. This narrative review surveys the two bodies of work that make such deployment possible. The first is model compression: efficient architectures built from depthwise separable convolutions, pruning of weights and filters, quantisation to low-precision integers, knowledge distillation, and neural architecture search constrained by memory. The second is the deployment toolchain: interpreters such as TensorFlow Lite for Microcontrollers, optimised kernel libraries such as CMSIS-NN, compilers that turn a model into specialised code, and the benchmarks used to compare results. The review explains what each technique does, what it costs, and how the pieces fit together into a working pipeline. It identifies peak activation memory, more than parameter count, as the binding constraint on microcontrollers, and 8-bit post-training or quantisation-aware integer quantisation as the one technique that nearly every deployment uses. Gaps remain in the practical exploitation of unstructured sparsity, in on-device learning, in the portability of results across hardware, and in the verification of compressed models for applications where errors carry consequences.</p></abstract>
<kwd-group kwd-group-type="author">
<kwd>TinyML</kwd>
<kwd>Microcontrollers</kwd>
<kwd>Model compression</kwd>
<kwd>Quantisation</kwd>
<kwd>Pruning</kwd>
<kwd>Embedded inference</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="sec1"><title>1. Introduction</title>
<p>A typical microcontroller offers a single low-frequency core, a few hundred kilobytes of static memory at best, a megabyte or so of flash, and no memory management unit. Deep learning grew up on hardware many orders of magnitude larger. The work that closed part of this distance was reviewed for larger embedded processors by Sze et al. (2017), and the microcontroller case was brought to a wide engineering audience by Warden and Situnayake (2019), whose book also popularised the name TinyML.</p>
<p>The motivation is practical. Inference at the sensor avoids sending raw audio, images or vibration data over a radio, which saves energy and bandwidth and keeps the data on the device. It also lets a product respond without a network connection. Keyword spotting, the task of recognising a small spoken vocabulary, was the early demonstration that useful neural networks fit in this class of device (Zhang et al., 2017), and it remains a reference workload together with visual wake words, small image classification and anomaly detection.</p>
<p>Fitting a model into a microcontroller is a joint problem in machine learning and embedded software. The network must be made small, and the code that runs it must waste nothing. This review treats the two halves in turn, compression first and toolchains second, and then considers how they interact and what remains unsolved.</p>
</sec>
<sec id="sec2"><title>2. Scope and Approach</title>
<p>The article is a narrative review. It is built around the papers that introduced the main techniques and the tools that are in common use, as judged from their adoption in the field and in the community benchmark. It was not compiled through a systematic database search and does not attempt to list every proposal. Hardware accelerators and neuromorphic devices are outside its scope; the focus is the general-purpose 32-bit microcontroller, of which the Arm Cortex-M family is the usual example.</p>
</sec>
<sec id="sec3"><title>3. The Resource Constraints That Shape the Problem</title>
<p>Three budgets matter. Flash holds the weights and the code, so parameter count and numeric precision determine whether the model can be stored. Static memory holds the activations, the intermediate tensors passed between layers, and the requirement is set by the largest set of tensors that must be alive at once. Latency and energy follow from the number of arithmetic operations and from how well the kernels use the processor. Of the three, activation memory is usually the hardest. A convolutional network for images has its largest feature maps in the first layers, and a design that looks small by parameter count can still exceed the available memory many times over. Lin et al. (2020) make this point forcefully and design their system around the peak memory figure.</p>
</sec>
<sec id="sec4"><title>4. Model Compression Techniques</title>
<p>Compression methods are complementary and are normally combined. Table 1 summarises the main families, what each reduces and what it demands of the deployment software.</p>
<table-wrap id="tbl1"><label>Table 1</label><caption><p>Principal model compression techniques and their implications for microcontroller deployment</p></caption><table frame="hsides" rules="groups"><thead><tr><th>Technique</th><th>What it reduces</th><th>Requirement on the runtime</th><th>Representative source</th></tr></thead><tbody><tr><td>Efficient architecture</td><td>Operations and parameters</td><td>Optimised depthwise and pointwise kernels</td><td>Howard et al., 2017</td></tr><tr><td>Unstructured pruning</td><td>Non-zero weights</td><td>Sparse storage and sparse kernels to realise any gain</td><td>Han et al., 2015</td></tr><tr><td>Structured pruning</td><td>Filters and channels</td><td>None; the result is a smaller dense network</td><td>Li et al., 2017</td></tr><tr><td>Integer quantisation</td><td>Bits per weight and activation</td><td>Integer-only kernels with fixed-point scaling</td><td>Jacob et al., 2018</td></tr><tr><td>Binarisation</td><td>Precision to one bit</td><td>Bitwise kernels; careful first and last layers</td><td>Courbariaux et al., 2016</td></tr><tr><td>Knowledge distillation</td><td>Accuracy lost by a small model</td><td>None; affects training only</td><td>Hinton et al., 2015</td></tr><tr><td>Constrained architecture search</td><td>Peak memory and latency</td><td>Accurate memory and latency model of the target</td><td>Lin et al., 2020</td></tr></tbody></table></table-wrap>
<sec id="sec4-2"><title>4.1. Efficient architectures</title>
<p>The cheapest operation is the one never performed, and the largest savings come from choosing a frugal architecture before any compression is applied. MobileNet replaced the standard convolution with a depthwise convolution followed by a pointwise one, cutting both operations and parameters, and exposed width and resolution multipliers that scale the network down smoothly (Howard et al., 2017). MobileNetV2 added inverted residual blocks with linear bottlenecks (Sandler et al., 2018). The depthwise separable networks that performed best in the keyword spotting study of Zhang et al. (2017) follow the same pattern, and most microcontroller vision and audio models today descend from these designs.</p>
</sec>
<sec id="sec4-3"><title>4.2. Pruning</title>
<p>Pruning removes parameters that contribute little. The idea predates deep learning: optimal brain damage used second-derivative information to select weights for deletion (LeCun et al., 1990). Han et al. (2015) showed that simple magnitude pruning followed by retraining removes a large share of the weights of modern networks with little loss of accuracy, and the lottery ticket hypothesis of Frankle and Carbin (2019) gave the observation a theoretical framing. On a microcontroller the distinction between unstructured and structured pruning is decisive. Unstructured pruning leaves a sparse matrix whose storage needs indices and whose multiplication needs irregular memory access, so the saving in flash is partial and the saving in time is often nil on a processor without sparse support. Structured pruning deletes whole filters or channels (Li et al., 2017) and yields a smaller dense network that any runtime executes faster. A critical survey by Blalock et al. (2020) also cautions that pruning results are hard to compare across papers because baselines and metrics differ.</p>
</sec>
<sec id="sec4-4"><title>4.3. Quantisation</title>
<p>Quantisation stores weights and activations at reduced precision. Moving from 32-bit floating point to 8-bit integers cuts model size by a factor of four and, as important, allows inference with integer arithmetic alone, which suits cores that lack a floating-point unit. The affine scheme of Jacob et al. (2018), in which a real value is represented by an integer, a scale and a zero point, is the basis of the formats used by the mainstream tools. Quantisation can be applied after training using a small calibration set, or simulated during training so that the network adapts to it; Krishnamoorthi (2018) sets out the practical trade-offs, and Gholami et al. (2021) survey the wider literature. Below eight bits, accuracy becomes harder to hold. Binarised networks constrain weights and activations to two values (Courbariaux et al., 2016) and replace multiplication with bitwise operations, at a cost in accuracy that has limited their use to simple tasks.</p>
</sec>
<sec id="sec4-5"><title>4.4. Distillation and combined pipelines</title>
<p>Knowledge distillation trains a small student network to reproduce the softened output distribution of a large teacher, which often recovers accuracy that the student would not reach from labels alone (Hinton et al., 2015). It changes nothing at deployment and combines freely with the other methods. Deep compression chained pruning, weight sharing and entropy coding into a single pipeline (Han et al., 2016) and established the habit of stacking techniques that TinyML work has followed since.</p>
</sec>
<sec id="sec4-6"><title>4.5. Architecture search under memory constraints</title>
<p>Manual design gives way to automated search once the constraint is stated precisely. SpArSe searched jointly over architecture and pruning for networks that fit microcontroller memory (Fedorov et al., 2019). MCUNet coupled a search over a space tailored to the memory limit with an inference engine tuned for the resulting models (Lin et al., 2020), and MicroNets used differentiable search with operation count as a proxy for latency on Cortex-M devices (Banbury et al., 2021a). The shared lesson is that the search must optimise the quantities the hardware imposes, peak memory above all, and not parameter count.</p>
</sec>
</sec>
<sec id="sec5"><title>5. Deployment Toolchains</title>
<p>A trained and compressed model still has to become firmware. Figure 1 shows the usual sequence, from choice of architecture to profiling on the target, with the return path that is taken when the device budget is missed.</p>
<fig id="fig1"><label>Figure 1</label><caption><p>Typical pipeline from model design to profiled firmware on a microcontroller</p></caption><graphic xlink:href="IJESD_V1I1_2026_02_Figure1.png" mimetype="image" mime-subtype="png"/></fig>
<sec id="sec5-2"><title>5.1. Interpreters and kernel libraries</title>
<p>TensorFlow Lite for Microcontrollers is the most widely used runtime. It is an interpreter that reads a serialised model, plans tensor memory in a single arena supplied by the application, and dispatches each operator to a kernel. Its design avoids dynamic allocation and operating system dependencies so that it builds for bare-metal targets (David et al., 2021). Interpretation adds a small fixed overhead; most of the execution time is spent in the kernels. On Arm cores those kernels are commonly provided by CMSIS-NN, a library of fixed-point convolution, pooling and activation routines that use the processor&#x27;s DSP extensions where present (Lai et al., 2018).</p>
</sec>
<sec id="sec5-3"><title>5.2. Compilers and code generators</title>
<p>The alternative to interpretation is compilation of the model into code specialised for it. TVM introduced a compiler stack with a tensor-level intermediate representation and automated tuning of operator implementations for a given target (Chen et al., 2018), and its microcontroller support emits C that links without a runtime interpreter. Silicon vendors provide generators of their own that take a quantised model and produce a C library for their parts. Code generation removes the interpreter and allows optimisations across layers, such as the in-place depthwise convolution used in MCUNet&#x27;s engine. The price is a less transparent build and tighter coupling between model and firmware.</p>
</sec>
<sec id="sec5-4"><title>5.3. Benchmarks</title>
<p>Comparing results was difficult while every paper used its own model, dataset and board. The MLPerf Tiny suite defines four tasks, keyword spotting, visual wake words, image classification and anomaly detection, with reference models and rules for reporting latency, accuracy and energy (Banbury et al., 2021b). The keyword spotting task uses the Speech Commands dataset (Warden, 2018). The suite has given toolchain developers a common yardstick, though its workloads are small and do not cover every sensing application.</p>
</sec>
</sec>
<sec id="sec6"><title>6. How Compression and Toolchain Interact</title>
<p>The two halves of the problem cannot be optimised separately. A compression method pays off only if the runtime has a kernel that exploits it: per-channel quantisation needs kernels that accept a scale for each output channel, a pruned filter saves time only when the converter removes it from the graph, and an operator the runtime does not implement stops deployment altogether. The memory planner matters as much as the kernels. Peak activation memory depends on the order in which operators are executed and on whether buffers are reused in place, so the same model file can fit under one runtime and overflow under another. For this reason careful projects measure on the target early, with a first model that is deliberately too simple, and treat the figures reported by the device as the specification that the next round of design must meet.</p>
</sec>
<sec id="sec7"><title>7. Gaps and Directions for Future Work</title>
<p>Four gaps stand out in the literature reviewed. Sparse models remain hard to exploit, since the mainstream runtimes execute dense kernels and unstructured sparsity gives little benefit without hardware or kernel support. Learning on the device is at an early stage: training needs gradients and stored activations that inference does not, and work on fitting it into microcontroller memory is recent. Portability is limited, because latency and memory depend on kernel implementations and memory planners that differ between runtimes and processor families, so a model tuned for one target may not fit another. Finally, the effect of compression on robustness is less studied than its effect on average accuracy. A quantised or pruned network can agree with its original on a test set and still differ on unusual inputs, which matters once such models are used in medical, industrial or automotive settings where behaviour must be argued and not only measured.</p>
</sec>
<sec id="sec8"><title>8. Conclusion</title>
<p>Machine learning on microcontrollers rests on a small set of well-understood ideas. Compact architectures built from depthwise separable convolutions set the starting point, integer quantisation is close to universal, structured pruning and distillation recover margin, and architecture search tuned to peak memory pushes furthest. On the software side an interpreter with optimised kernels serves most projects, with compilation available where every byte and cycle counts. The field&#x27;s open questions lie less in making models smaller than in making the results portable, adaptable after deployment and trustworthy enough for applications in which a wrong answer has a cost.</p>
</sec>
<sec id="sec9"><title>Conflict of interest</title>
<p>To be declared by the author(s) before publication.</p>
</sec>
<sec id="sec10"><title>Funding</title>
<p>To be declared by the author(s) before publication.</p>
</sec>
</body>
<back>
<ref-list><title>References</title>
<ref id="ref1"><label>1</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Banbury, C., Reddi, V.J., Torelli, P., Holleman, J., Jeffries, N., Kiraly, C., et al.</string-name></person-group> (<year>2021</year>). <article-title>MLPerf Tiny benchmark</article-title>. <source>Proceedings of the Neural Information Processing Systems Track on Datasets and Benchmarks</source></mixed-citation></ref>
<ref id="ref2"><label>2</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Banbury, C., Zhou, C., Fedorov, I., Matas, R., Thakker, U., Gope, D., Janapa Reddi, V., Mattina, M. and Whatmough, P.</string-name></person-group> (<year>2021</year>). <article-title>MicroNets: Neural network architectures for deploying TinyML applications on commodity microcontrollers</article-title>. <source>Proceedings of Machine Learning and Systems</source>, <fpage>3</fpage></mixed-citation></ref>
<ref id="ref3"><label>3</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Blalock, D., Gonzalez Ortiz, J.J., Frankle, J. and Guttag, J.</string-name></person-group> (<year>2020</year>). <article-title>What is the state of neural network pruning?</article-title>. <source>Proceedings of Machine Learning and Systems</source>, <volume>2</volume>, <fpage>129-146</fpage></mixed-citation></ref>
<ref id="ref4"><label>4</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Chen, T., Moreau, T., Jiang, Z., Zheng, L., Yan, E., Cowan, M., Shen, H., Wang, L., Hu, Y., Ceze, L., Guestrin, C. and Krishnamurthy, A.</string-name></person-group> (<year>2018</year>). <article-title>TVM: An automated end-to-end optimizing compiler for deep learning</article-title>. <source>Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI)</source>, <fpage>578-594</fpage></mixed-citation></ref>
<ref id="ref5"><label>5</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Courbariaux, M., Hubara, I., Soudry, D., El-Yaniv, R. and Bengio, Y.</string-name></person-group> (<year>2016</year>). <article-title>Binarized neural networks: Training deep neural networks with weights and activations constrained to +1 or -1</article-title>. <source>arXiv preprint arXiv:1602.02830</source></mixed-citation></ref>
<ref id="ref6"><label>6</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>David, R., Duke, J., Jain, A., Janapa Reddi, V., Jeffries, N., Li, J., Kreeger, N., Nappier, I., Natraj, M., Regev, S., Rhodes, R., Wang, T. and Warden, P.</string-name></person-group> (<year>2021</year>). <article-title>TensorFlow Lite Micro: Embedded machine learning for TinyML systems</article-title>. <source>Proceedings of Machine Learning and Systems</source>, <volume>3</volume>, <fpage>800-811</fpage></mixed-citation></ref>
<ref id="ref7"><label>7</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Fedorov, I., Adams, R.P., Mattina, M. and Whatmough, P.N.</string-name></person-group> (<year>2019</year>). <article-title>SpArSe: Sparse architecture search for CNNs on resource-constrained microcontrollers</article-title>. <source>Advances in Neural Information Processing Systems</source>, <fpage>32</fpage></mixed-citation></ref>
<ref id="ref8"><label>8</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Frankle, J. and Carbin, M.</string-name></person-group> (<year>2019</year>). <article-title>The lottery ticket hypothesis: Finding sparse, trainable neural networks</article-title>. <source>Proceedings of the 7th International Conference on Learning Representations (ICLR)</source></mixed-citation></ref>
<ref id="ref9"><label>9</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Gholami, A., Kim, S., Dong, Z., Yao, Z., Mahoney, M.W. and Keutzer, K.</string-name></person-group> (<year>2021</year>). <article-title>A survey of quantization methods for efficient neural network inference</article-title>. <source>arXiv preprint arXiv:2103.13630</source></mixed-citation></ref>
<ref id="ref10"><label>10</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Han, S., Mao, H. and Dally, W.J.</string-name></person-group> (<year>2016</year>). <article-title>Deep compression: Compressing deep neural networks with pruning, trained quantization and Huffman coding</article-title>. <source>Proceedings of the 4th International Conference on Learning Representations (ICLR)</source></mixed-citation></ref>
<ref id="ref11"><label>11</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Han, S., Pool, J., Tran, J. and Dally, W.J.</string-name></person-group> (<year>2015</year>). <article-title>Learning both weights and connections for efficient neural networks</article-title>. <source>Advances in Neural Information Processing Systems</source>, <volume>28</volume>, <fpage>1135-1143</fpage></mixed-citation></ref>
<ref id="ref12"><label>12</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Hinton, G., Vinyals, O. and Dean, J.</string-name></person-group> (<year>2015</year>). <article-title>Distilling the knowledge in a neural network</article-title>. <source>arXiv preprint arXiv:1503.02531</source></mixed-citation></ref>
<ref id="ref13"><label>13</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Howard, A.G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., Andreetto, M. and Adam, H.</string-name></person-group> (<year>2017</year>). <article-title>MobileNets: Efficient convolutional neural networks for mobile vision applications</article-title>. <source>arXiv preprint arXiv:1704.04861</source></mixed-citation></ref>
<ref id="ref14"><label>14</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Jacob, B., Kligys, S., Chen, B., Zhu, M., Tang, M., Howard, A., Adam, H. and Kalenichenko, D.</string-name></person-group> (<year>2018</year>). <article-title>Quantization and training of neural networks for efficient integer-arithmetic-only inference</article-title>. <source>Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)</source>, <fpage>2704-2713</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/CVPR.2018.00286">https://doi.org/10.1109/CVPR.2018.00286</ext-link></mixed-citation></ref>
<ref id="ref15"><label>15</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Krishnamoorthi, R.</string-name></person-group> (<year>2018</year>). <article-title>Quantizing deep convolutional networks for efficient inference: A whitepaper</article-title>. <source>arXiv preprint arXiv:1806.08342</source></mixed-citation></ref>
<ref id="ref16"><label>16</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Lai, L., Suda, N. and Chandra, V.</string-name></person-group> (<year>2018</year>). <article-title>CMSIS-NN: Efficient neural network kernels for Arm Cortex-M CPUs</article-title>. <source>arXiv preprint arXiv:1801.06601</source></mixed-citation></ref>
<ref id="ref17"><label>17</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>LeCun, Y., Denker, J.S. and Solla, S.A.</string-name></person-group> (<year>1990</year>). <article-title>Optimal brain damage</article-title>. <source>Advances in Neural Information Processing Systems</source>, <volume>2</volume>, <fpage>598-605</fpage></mixed-citation></ref>
<ref id="ref18"><label>18</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Li, H., Kadav, A., Durdanovic, I., Samet, H. and Graf, H.P.</string-name></person-group> (<year>2017</year>). <article-title>Pruning filters for efficient ConvNets</article-title>. <source>Proceedings of the 5th International Conference on Learning Representations (ICLR)</source></mixed-citation></ref>
<ref id="ref19"><label>19</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Lin, J., Chen, W.-M., Lin, Y., Cohn, J., Gan, C. and Han, S.</string-name></person-group> (<year>2020</year>). <article-title>MCUNet: Tiny deep learning on IoT devices</article-title>. <source>Advances in Neural Information Processing Systems</source>, <volume>33</volume>, <fpage>11711-11722</fpage></mixed-citation></ref>
<ref id="ref20"><label>20</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Sandler, M., Howard, A., Zhu, M., Zhmoginov, A. and Chen, L.-C.</string-name></person-group> (<year>2018</year>). <article-title>MobileNetV2: Inverted residuals and linear bottlenecks</article-title>. <source>Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)</source>, <fpage>4510-4520</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/CVPR.2018.00474">https://doi.org/10.1109/CVPR.2018.00474</ext-link></mixed-citation></ref>
<ref id="ref21"><label>21</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Sze, V., Chen, Y.-H., Yang, T.-J. and Emer, J.S.</string-name></person-group> (<year>2017</year>). <article-title>Efficient processing of deep neural networks: A tutorial and survey</article-title>. <source>Proceedings of the IEEE</source>, <volume>105(12)</volume>, <fpage>2295-2329</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/JPROC.2017.2761740">https://doi.org/10.1109/JPROC.2017.2761740</ext-link></mixed-citation></ref>
<ref id="ref22"><label>22</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Warden, P.</string-name></person-group> (<year>2018</year>). <article-title>Speech commands: A dataset for limited-vocabulary speech recognition</article-title>. <source>arXiv preprint arXiv:1804.03209</source></mixed-citation></ref>
<ref id="ref23"><label>23</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Warden, P. and Situnayake, D.</string-name></person-group> (<year>2019</year>). <article-title>TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers</article-title>. <source>O&#x27;Reilly Media, Sebastopol, CA</source></mixed-citation></ref>
<ref id="ref24"><label>24</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Zhang, Y., Suda, N., Lai, L. and Chandra, V.</string-name></person-group> (<year>2017</year>). <article-title>Hello edge: Keyword spotting on microcontrollers</article-title>. <source>arXiv preprint arXiv:1711.07128</source></mixed-citation></ref>
</ref-list>
</back>
</article>