https://github.com/conect2ai/sbai2025-tensorflores

https://github.com/conect2ai/sbai2025-tensorflores

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: ieee.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: conect2ai
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 1.63 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 7 months ago · Last pushed 7 months ago
Metadata Files
Readme License

README.MD

SBAI 2025 Logo

🧠 SBAI 2025 Minicourse: Advanced TinyMLOPs Methods: Implementing Machine Learning in Embedded Systems

✍🏾Authors: Thommas Flores, Daniel Costa and Ivanovitch Silva

📅 Date: July 29, 2025

📍 Event: Brazilian Symposium on Intelligent Automation (SBAI 2025)

📌 Overview

This minicourse addresses the growing demand for machine learning deployment on low-power embedded devices, driven by the evolution of edge computing. It focuses on advanced quantization strategies—including Quantization-Aware Training (QAT) and Post-Training Quantization (PTQ)—as well as model compression techniques using the TensorFlores framework.

Developed by the Conecta2AI research group (UFRN) in collaboration with LES2 (FEUP), TensorFlores automates MLP optimization and C++ code generation for microcontrollers, enabling efficient and portable AI at the edge.

🎯 Goals

General Goal

Enable participants to design and deploy optimized machine learning models on embedded systems using TensorFlores.

Specific Objectives

  • Understand the mathematical foundations of model quantization.
  • Apply advanced model compression techniques (PTQ and QAT) for efficient ML on resource-constrained devices.
  • Gain hands-on experience in developing and deploying optimized TinyML models.

🧑‍💻 Target Audience & Prerequisites

Target Audience

Students, educators, researchers, and practitioners in Engineering, Computer Science, or related fields interested in embedded ML.

Prerequisites

Basic knowledge of Python and C++ (Arduino IDE) is required.

🗂️ Course Outline

⏱️ Duration: 3 hours

Theoretical Part (1 hour)

  1. Introduction to TinyML (20 min)
  • What is TinyML and why it matters
  • Use cases and industry applications
  • Challenges and opportunities

    1. Post-Training Quantization (PTQ) (20 min)
  • Overview and best practices

  • Example applications in TinyML

    1. Quantization-Aware Training (QAT) (20 min)
  • Overview and best practices

  • Practical use cases

Practical Part (2 hours)

  1. Setting Up TensorFlores (50 min)
  • Installation and environment setup
  • Workflow: training, quantization, C++ code generation
  • Integration with microcontrollers

    1. Training and Deploying MLP Models (50 min)
  • Guide for PTQ-based deployment

  • Guide for QAT-based deployment

    1. Challenges in Real-World Projects (20 min)
  • Discussion of deployment challenges

  • Shared experiences and practical tips


🔧 Required Materials

  • Participant laptops with Python IDE and Arduino IDE installed
  • Internet access
  • Projector or screen for visual presentations

📤 Installation

  • Install Python v3.9.6
  • Clone this repository.
  • Inside the cloned repository folder, open the terminal or command prompt and run:

bash python -m venv venv

  • Activate the virtual environment:

bash venv\Scripts\activate

  • Install the required packages inside the environment:

bash pip install -r requirements.txt

📁 Repository Structure

plaintext 📦 SBAI2025-TensorFlores ├── 📂 code │ ├── 📂 arduino │ │ ├── model.h │ │ └── tensorflores.ino │ └── 📂 notebooks │ ├── 01_EDA.ipynb │ ├── 02_data_segregation.ipynb │ ├── 03_train_standard.ipynb │ ├── 04_post_train_quantization.ipynb │ ├── 05_train_aware_quantization.ipynb │ └── my_key.py ├── 📂 data │ └── emission_total.csv ├── 📂 docs │ ├── slides.pdf │ └── Ementa.pdf ├── 📂 figures │ └── minicurso.png ├──📜 .gitignore ├──📜 LICENSE.txt ├──📜 README.MD └──📜 requirements.txt

📚 Jupyter Notebooks

  • Jupyter Exploratory Data Analysis (EDA)

  • Jupyter Data Segregation

  • Jupyter Training Standard Model

  • Jupyter Post Training Quantization

  • Jupyter Quantization Aware Training

📚 Arduino Codes

  • Arduino Arduino ML code

🗂️ References

  1. Flores, T.K.S., Costa, D.G., & Silva, I. (2025). TensorFlores: An enhanced Python-based TinyML framework. SoftwareX, 31, 102224.→ Presents the TensorFlores framework, its modular architecture, evolving clustering-based quantization, and automatic C++ code generation for embedded systems.

  2. Flores, T.K.S., Medeiros, M., Silva, M., Costa, D.G., & Silva, I. (2025). Enhanced Vector Quantization for Embedded Machine Learning: A Post-Training Approach With Incremental Clustering. IEEE Access, 13, 17440–17456.

  3. Flores, T.K.S., Medeiros, M., Silva, M., Costa, D.G., & Silva, I (2025). Advancing Tiny Machine Learning Operations: Robust Model Updates in the Internet of Intelligent Vehicles. IEEE Micro, vol. 45, no. 1, pp. 76-86.

    License

This package is licensed under the MIT License - © 2023 Conect2ai.

Owner

  • Name: conect2ai
  • Login: conect2ai
  • Kind: organization

GitHub Events

Total
  • Watch event: 4
  • Push event: 4
  • Create event: 2
Last Year
  • Watch event: 4
  • Push event: 4
  • Create event: 2

Dependencies

requirements.txt pypi
  • matplotlib ==3.7.1
  • nbformat ==5.10.4
  • river ==0.21.2
  • scikit-learn ==1.0.2
  • seaborn *
  • tensorflores ==0.1.10
  • tensorflow ==2.15.0
  • wandb *