Skip to content

wandb/tiny-ml

Repository files navigation

Truely TinyML with WandB (Wake word detection) 🎙️

Here we will cover :

  • Data storage, acquisition, and versioning using Artifacts
  • Pre-processing and data visuality using wandb tables
  • Hyperparameter tuning using sweeps;
  • selecting and storing models using model registry;
  • Deployment/Inference monitoring.

WandB UI 🪄🐝:

You can see how we use WandB to track, understand and develop our wake word model:

A WandB project can be found here along with a corresponding report on this project here

Setup:

You'll be able to run the sound_classifier notebook locally, or in colab:

You'll need to create a new venv, clone this repository and inside your python virtual env run

cd tiny-ml
pip install -r requirements.txt

If installing Tensorflow on mac with apple silicon aka M1 or M2 you will need to use the following to install tf :

pip install tensorflow-metal

Depending on your use case you might also need tfio which can be install with the following:

 git clone https://github.com/tensorflow/io.git
 cd io
 python3 setup.py -q bdist_wheel
 python3 -m pip install --no-deps dist/tensorflow_io-0.30.0-cp310-cp310-macosx_12_0_arm64.whl

Note the .whl file may change and and your bash command should also

We also recommend using pyenv or some other virtual environment manager to manage your python environment.

Here is an example following signal processing that we are training on spectrogram because we are all about expandability and this is the raw data type that out model performs inference on in the wild: