Using Edge Impulse Python SDK with AWS SageMaker Studio
In this video
Edge Impulse: Leveraging Python SDK and Custom Model Training
Edge Impulse, the leading software platform for embedded machine learning, recently announced two exciting new features that empower developers: the Engine Boost Python SDK and the «bring your own model» functionality. This article will explore these new tools, how they work, and how you can utilize them to build your own machine learning models for embedded devices.
Interact with Edge Impulse from Jupyter Notebook Using Python SDK
The new Python SDK allows developers to interact with the Edge Impulse studio from a Jupyter notebook or a Python script. With a simple installation command
python or pip3 install edge impulse, developers can integrate their workflow with Edge Impulse.
After getting your API key from the dashboard, developers can perform various actions like listing the supported device architectures for profiling, deploying quantized models, and generating C++ libraries.
Profiling and Deployment using Python SDK
One of the key features offered by the Python SDK is profiling. This includes generating a result for a float32 or a quantized model and determining which device or architecture is supported for profiling.
Edge Impulse supports deployment in multiple formats, including a C++ library using zip format, Arduino, CubeMX, WebAssembly, and
.AEM, which are executable Linux formats that you can run on devices such as Linux raspberries and MacBook Pros.
Training Custom Image Classification Models with SageMaker Studio
Edge Impulse allows developers to train their models outside the platform and then import them for profiling and compilation into a C++ library. This process can be conveniently done from AWS SageMaker Studio, where you can perform image classification model training using transfer learning.
Using SageMaker, you can specify your training datasets, choose the machine learning instance for training (for example,
m5.large), and specify the base model. It supports models like MobileNet and EfficientNet, and you can experiment with different ones based on your needs.
Converting and Uploading Trained Models
Once you have trained your model, it can be downloaded from your S3 bucket and then converted to TensorFlow Lite format. This is a temporary step due to some issues with the direct conversion using the TensorFlow Lite converter.
Your TensorFlow Lite model can then be uploaded to Edge Impulse using your API key. You can monitor the job and view logs for details such as accuracy and validation accuracy of your model.
Testing and Deploying Custom Models
Edge Impulse allows you to test your custom models using real conditions. You can add test data to your dataset, classify images, and get the probability of each class. The platform provides insightful information on both RAM and ROM, including the inference time.
Edge Impulse supports deployment in various formats. For the C++ library, you can gather labels (metadata) and compile your model into a C++ library. This library is ready to be compiled and run on your embedded devices.
Further Deployment Options
Apart from C++ libraries, Edge Impulse also supports deployment on Arduino and WebAssembly. While these options might not suit all models due to size restrictions, they offer additional flexibility. You can also test your model accuracy by running inferences on your test dataset.
The new features introduced by Edge Impulse bring significant improvements to the development process, allowing developers to leverage Python SDK and custom model training from external platforms like SageMaker Studio. With these tools, it's easier than ever to build and deploy machine learning models for embedded devices.
For any queries or assistance, the Edge Impulse forum offers help and community support to developers. Embrace these new capabilities and take your embedded machine learning projects to new heights.
edge impulseedge impulse python sdkpython sdkaws sagemakeraws sagemaker mlopsaws sagemaker studioaws sagemaker tutorialimage classificationimage classification modelimage classification tensorflowimage classification cnntinymlmachine learningembedded machine learningembedded mledge machine learningedge mledge aitrain a machine learning model with sagemakertrain an ml modeltrain a machine learning model