Getting Started with the Edge Impulse Python SDK
In this video
Leverage the Power of Edge Impulse Python SDK for Edge AI Solutions
The Edge Impulse Python SDK is a robust toolset enabling developers to seamlessly interact with their machine learning models using the Edge Impulse system. By leveraging Python, developers can set up comprehensive machine learning operations pipelines.
Understanding the Edge Impulse Python SDK
Functionality of the SDK
The Edge Impulse Python SDK currently offers two primary functions. Firstly, it enables profiling, where you supply a model, and the SDK profiles it by estimating RAM usage, ROM usage, and the inference time for that model on a given target hardware. Secondly, it allows model deployment, wherein the SDK, given a model, can produce a C++ library for deployment.
Edge Impulse supports a multitude of output formats such as pre-compiled firmware for a number of supported boards or specific libraries for AI accelerators. As for the input, the SDK currently accepts Keras format, the saved model format, and Onyx, among others.
Interacting with the Python SDK
The SDK simplifies the interaction with your models. You can begin by installing the specific version of TensorFlow (e.g., 2.12) along with the Edge Impulse Python package. After importing these packages, you need to set your API key, which you can obtain by creating an account on edgeimpulse.com.
With the API key set, you can proceed to prepare your dataset, normalize it, and set your model's input shape. Building your model is straightforward — for instance, you might opt for a simple dense neural network and use the Adam optimizer and categorical cross entropy for loss.
Deploying and Profiling Models with the Edge Impulse Python SDK
Profiling Your Models
After training the model, you can profile it to ensure its compatibility with your target hardware. You can use the
ei.model.profile function, passing in your model and the hardware of your choice (e.g., Cortex M4 running at 80 MHz). This process might take a while as it involves uploading your model to the Edge Impulse servers for profiling. Once completed, you can call the
summary function to review the estimated RAM and ROM usage on your target hardware.
Deploying Your Models
Once you are satisfied with your model's accuracy and compatibility with your target hardware, you can proceed to deploy it. The
ei.model.list_deployment_targets function lets you review all possible deployments. You can pass some model information (like the classification labels) to the deployment to automatically include these parameters in the resultant C++ library.
After setting the deployment details, you can call the
deploy method, passing in your model, the model output type, and the deploy target. The output will be the raw bytes of the model, which you can then write to a file using the conventional Python method.
Future Development and Resources
As we continue to add more features to the Edge Impulse Python SDK, we hope it will increasingly empower developers in creating Edge machine learning applications. If you're interested in learning more about the Edge Impulse Python SDK, visit bit.ly/ei-PiSDK-YT-getting-started for a variety of tutorials, including TensorFlow and Keras examples along with examples that include Hugging Face, Weights and Biases, and SageMaker Studio.
Harness the power of Edge Impulse Python SDK and bring your edge machine learning solutions to life!
machine learningmlaiedge aiedge machine learningpythontensorflowkerasiothardwareembeddedsoftwareengineeringedge mlonnxpytorchspark mlc++python sdkedge impulse