From 471a3559598ac6b8b957fe56dd90a7bb624419f6 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 17 Oct 2024 10:23:41 -0700 Subject: [PATCH] Experiments Getting Started fixes --- README.md | 1 + SUMMARY.md | 1 + experiments-getting-started.md | 58 +++++++++++++++++++--------------- 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 0b8a5b1..b49d15a 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ As you browse the projects, be sure to make note that many of them could be adap * [Renesas CK-RA6M5 Cloud Kit - Getting Started with Machine Learning](renesas-ra6m5-getting-started.md) * [TI CC1352P Launchpad - Getting Started with Machine Learning](ti-cc1352p-getting-started.md) * [OpenMV Cam RT1062 - Getting Started with Machine Learning](getting-started-openmv-rt1062.md) +* [Getting Started with Edge Impulse Experiments](experiments-getting-started.md) ### Image Projects diff --git a/SUMMARY.md b/SUMMARY.md index e01339a..fe5a2c9 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -21,6 +21,7 @@ * [Renesas CK-RA6M5 Cloud Kit - Getting Started with Machine Learning](renesas-ra6m5-getting-started.md) * [TI CC1352P Launchpad - Getting Started with Machine Learning](ti-cc1352p-getting-started.md) * [OpenMV Cam RT1062 - Getting Started with Machine Learning](image-projects/getting-started-openmv-rt1062.md) +* [Getting Started with Edge Impulse Experiments](experiments-getting-started.md) ## Image Projects diff --git a/experiments-getting-started.md b/experiments-getting-started.md index 6010e25..1c1d048 100644 --- a/experiments-getting-started.md +++ b/experiments-getting-started.md @@ -1,24 +1,24 @@ --- -description: Create xxx. +description: Discover how to use the Experiments feature to test and improve machine learning model accuracy. --- -# NVIDIA xxx +# Getting Started with Edge Impulse Experiments Created By: [Adam Milton-Barker](https://www.AdamMiltonBarker.com) Public Project Link: -[https://studio.edgeimpulse.com/public/xxx/latest](https://studio.edgeimpulse.com/public/xxx/latest) +[https://studio.edgeimpulse.com/public/521263/latest](https://studio.edgeimpulse.com/public/521263/latest) -![](.gitbook/assets/experiments-getting-started/xxx.jpg) +![](.gitbook/assets/experiments-getting-started/edge-impulse-experiments.jpg) ## Introduction -Edge Impulse Experiments are a powerful new feature that allows users to run multiple active impulses within a single project. This enables seamless experimentation with various model configurations on the same dataset, offering a more efficient way to compare results. +Edge Impulse Experiments are a powerful new feature that allows users to run multiple active Impulses within a single project. This enables seamless experimentation with various model configurations on the same dataset, offering a more efficient way to compare results. -The updated interface includes a new "Experiments" section, which centralizes impulse management and integrates the EON Tuner for enhanced trial handling. Along with API enhancements and streamlined processes, these changes significantly accelerate development and improve project organization, making it easier to transition from data collection to deployment. +The updated interface includes a new "Experiments" section, which centralizes Impulse management and integrates the EON Tuner for enhanced trial handling. Along with API enhancements and streamlined processes, these changes significantly accelerate development and improve project organization, making it easier to transition from data collection to deployment. -This project provides a walk through of how to use experiments, along with a tutorial that will help you get started with Edge Impulse Experiments. +This project provides a walk through of how to use Experiments, along with a tutorial that will help you get started with Edge Impulse Experiments. ## Hardware @@ -44,7 +44,7 @@ The Arduino Nano RP2040 Connect is a highly versatile development board, bringin ![Arduino Nano RPI2040 Connect Pins](.gitbook/assets/experiments-getting-started/arduino-nano-rpi2040-connect-pins.jpg "rduino Nano RPI2040 Connect Pins") -The Nano RP2040 Connect is fully compatible with the Arduino Cloud platform, allowing users to rapidly prototype IoT solutions. It also supports MicroPython for those who prefer Python for programming. With a clock speed of 133 MHz, the board is well-suited for machine learning tasks, offering support for frameworks like TinyML and TensorFlow Lite. Additionally, its 6-axis IMU and temperature sensor expand the board’s capability for advanced real-world applications. +The Nano RP2040 Connect is fully compatible with the Arduino Cloud platform, allowing users to rapidly prototype IoT solutions. It also supports MicroPython for those who prefer Python for programming. With a clock speed of 133 MHz, the board is well-suited for machine learning tasks, offering support for frameworks like TinyML and TensorFlow Lite. Additionally, its 6-axis IMU and temperature sensor expand the board's capability for advanced real-world applications. To begin working with the Edge Impulse platform and the Nano RPI2040 Connect, follow [this tutorial](https://docs.edgeimpulse.com/docs/edge-ai-hardware/mcu/raspberry-pi-rp2040) to connect your device. @@ -56,7 +56,7 @@ To begin working with the Edge Impulse platform and the Nano RPI2040 Connect, fo Now it's time to create your Edge Impulse project. Head over to [Edge Impulse](https://studio.edgeimpulse.com/), log in, and create your new project. -Edge Impulse offers experiments to all users, with the community tier allowing up to three simultaneous experiments. Users on the Professional Plan and Enterprise tiers enjoy unlimited access to experiments. You can explore all the platform’s advanced features by signing up for an [Enterprise Trial](https://studio.edgeimpulse.com/trial-signup). +Edge Impulse offers Experiments to all users, with the Community tier allowing up to three simultaneous Experiments. Users on the Professional Plan and Enterprise tiers enjoy unlimited access to Experiments. You can explore all the platform's advanced features by signing up for an [Enterprise Trial](https://studio.edgeimpulse.com/trial-signup). ![Create Edge Impulse Project Dashboard](.gitbook/assets/experiments-getting-started/edge-impulse-project-dashboard.jpg "Create Edge Impulse Project Dashboard") @@ -64,7 +64,7 @@ Once your project is created, you will see the project dashboard which will show ### Connect Your Device -Next you need to connect your device to the Edge Impulse platform. Ensuring you have the Nano connected to your computer, open commandline or terminal and use the following command: +Next you need to connect your device to the Edge Impulse platform. Ensuring you have the Nano connected to your computer, open a command line or terminal and use the following command: ```bash edge-impulse-daemon @@ -82,19 +82,19 @@ If you now head over to your project and go the `Devices` tab, you will see your ![Edge Impulse Project Collect Data](.gitbook/assets/experiments-getting-started/edge-impulse-rp2040-collect-data.jpg "Edge Impulse Project Collect Data") -Now that your device is connected to Edge Impulse. It is time to collect some data. Head over to the `Data aquisition` tab and select the RPI2040. +Now that your device is connected to Edge Impulse, it is time to collect some data. Head over to the `Data aquisition` tab and select the RPI2040. ![Edge Impulse Project Collect Normal Data](.gitbook/assets/experiments-getting-started/edge-impulse-rp2040-collect-data-normal.jpg "Edge Impulse Project Collect Normal Data") -First we will create the `normal` data. This data will represent when a machine is running normally with no abnormal vibrations. Select the `Intertial` sensor and use `Normal` as the label. Next record about 3 minutes of 10 second samples from the device. +First we will create the `normal` data. This data will represent when a machine is running normally with no abnormal vibrations. Select the `Intertial` sensor and use `Normal` as the label. Next record about 3 minutes data, collected in 10 second samples from the device. ![Edge Impulse Project Collect Vibrations Data](.gitbook/assets/experiments-getting-started/edge-impulse-rp2040-collect-data-vibrations.jpg "Edge Impulse Project Collect Vibrations Data") -Next we will collect the `Vibrations` data. Change the label to `Vibrations` and record 3 minutes more of samples, but this time shake the Arduino around while the samples are being recorded. +Next we will collect some `Vibrations` data. Change the label to `Vibrations` and record 3 minutes more of samples, but this time shake the Arduino around while the samples are being recorded. ![Edge Impulse Project Collected Data](.gitbook/assets/experiments-getting-started/edge-impulse-rp2040-collected-data.jpg "Edge Impulse Project Collected Data") -You should now have about 6 minutes of data. Note that at this point the data is not split into training and validation. +You should now have about 6 minutes of data. Note that at this point the data is not split into Training and Testing groups. ![Edge Impulse Project Collected Data Split](.gitbook/assets/experiments-getting-started/edge-impulse-data-train-test-split.jpg "Edge Impulse Project Collected Data Split") @@ -114,15 +114,15 @@ Now it is time to create your Impulse. Head over to the `Create Impulse` tab and ![Edge Impulse Project Create Spectral Analysis Impulse](.gitbook/assets/experiments-getting-started/edge-impulse-create-impulse-spectral.jpg "Edge Impulse Project Create Spectral Analysis Impulse") -First we will use the `Spectral Analysis` processing block. Spectral Analysis is ieal for examining repetitive movements, particularly using accelerometer data, this tool breaks down signals to reveal their frequency and power patterns over time. +First we will use the `Spectral Analysis` Processing block. Spectral Analysis is ideal for examining repetitive movements, particularly using accelerometer data. Tthis tool breaks down signals to reveal their frequency and power patterns over time. -Click `Add` to add the Spectral Analysis processing block to your Impulse. +Click `Add` to add the Spectral Analysis Processing block to your Impulse. ### Classification ![Edge Impulse Project Create Spectral Analysis Classification Impulse](.gitbook/assets/experiments-getting-started/edge-impulse-create-impulse-spectral-classification.jpg "Edge Impulse Project Create Spectral Analysis Classification Impulse") -For the learning block, we will use `Classification` to classify between `Normal` and `Vibrations`. Click `Add` to add the classification block to your Impulse. +For the Learning block, we will use `Classification` to classify between `Normal` and `Vibrations`. Click `Add` to add the Classification block to your Impulse. Next click `Save Impulse`. @@ -144,21 +144,21 @@ A feature generation job will start, and once finished you will see the features ![Edge Impulse Project Spectral Analysis Classification Training](.gitbook/assets/experiments-getting-started/edge-impulse-train-spectral-classifier.jpg "Edge Impulse Project Spectral Analysis Classification Training") -Now it is time to train our model. Head over to the `Classifier` tab and click on `Save and train`. +Now it is time to train our model. Head over to the `Classifier` tab, leave the default settings intact, and click on `Save and train`. -A training job will start, once trained you will see the results on the right hand side of the UI. +A training job will start, and once completed you will see the results on the right hand side of the UI. ### Testing ![Edge Impulse Project Spectral Analysis Classification Testing](.gitbook/assets/experiments-getting-started/edge-impulse-train-spectral-classifier-testing.jpg "Edge Impulse Project Spectral Analysis Classification Testing") -If you now head over to the `Model testing` tab, you will be able to use your newly trained model on the test data. The test data was not shown to the model during training, so this will help to evaluate how well the model does on unseen data. +If you now head over to the `Model testing` tab, you will be able to use your newly trained model on the Test data that was set aside. The Test data was not shown to the model during training, so this will help to evaluate how well the model performs on unseen data. The testing process will start and you will see the results once complete. ![Edge Impulse Project First Experiment](.gitbook/assets/experiments-getting-started/edge-impulse-first-experiment.jpg "Edge Impulse Project First Experiment") -If you head to the `Experiments` tab, you will see that you have your first experiment listed. +If you head to the `Experiments` tab, you will see that you now have your first Experiment listed. ### Deployment @@ -166,13 +166,13 @@ If you head to the `Experiments` tab, you will see that you have your first expe You are now able to deploy your model to your Arduino. Head over to the `Deployment` tab and search for Arduino, then follow the steps provided to you to deploy the model to your device. -As this tutorial is specifically related to Experiments, we will continue straight to EON Tuner and creating our next experiment. +As this tutorial is specifically related to Experiments, we will continue straight to EON Tuner and creating our next Experiment. ### EON Tuner ![Edge Impulse Project EON Tuner](.gitbook/assets/experiments-getting-started/edge-impulse-eon-tuner.jpg "Edge Impulse Project EON Tuner") -The EON™ Tuner simultaneously tests multiple model architectures, chosen based on your device and latency needs, to identify the best one for your application. The tuning process can take up to 6 hours, and you can monitor its progress at any point during the search. +The EON™ Tuner simultaneously tests multiple model architectures, chosen based on your device and latency needs, to identify the best one for your application. The tuning process can take a while, but you can monitor its progress at any point during the search. ![Edge Impulse Project EON Tuner](.gitbook/assets/experiments-getting-started/edge-impulse-eon-tuner-run.jpg "Edge Impulse Project EON Tuner") @@ -188,13 +188,19 @@ If at any time during the EON tuning process, you see a configuration you would ![Edge Impulse Project EON Tuner](.gitbook/assets/experiments-getting-started/edge-impulse-eon-tuner-choose.jpg "Edge Impulse Project EON Tuner") -Here we see a configuration that has a considerable reduction for latency, RAM, and ROM, we will use this configuration for our next experiment. +Here we see a configuration that has a considerable reduction for latency, RAM, and ROM, so we will use this configuration for our next Experiment. ![Edge Impulse Project Experiment 2](.gitbook/assets/experiments-getting-started/edge-impulse-experiment-2.jpg "Edge Impulse Project Experiment 2") -The platform will create the blocks for your new impulse and add the features automatically for your. If you head back to the `Experiments` tab you will now see your shiny new model waiting for you to test or deploy. +The platform will create the blocks for your new Impulse and add the features automatically for you. If you head back to the `Experiments` tab you will now see your new model waiting for you to test or deploy. + +## Experiment 3 + +While the EON Tuner will help identify the best architectures and configuration automatically, you can also manually add a new Experiment in order to go through the blocks and neural network setup process again, by simply clicking on the "**Create new impulse**" button on the Experiments page. + +At this point, once you have trained yet a third model and tested it's results, you now have 3 different models to choose from, and can select the best one to deploy to your device. In the Professional and Enterprise tiers, you can continue to evaluate and iterate with even more Experiments. ## Conclusion -In this tutorial, we demonstrated how to build a defect detection system with Edge Impulse and the Arduino Nano RP2040, and how to leverage the EON Tuner to optimize your model. By integrating these tools, you can easily refine and enhance your models, showcasing the power and simplicity of Edge Impulse's new Experiments feature for continuous improvement in machine learning projects. +In this tutorial, we demonstrated how to build a defect detection system with Edge Impulse and the Arduino Nano RP2040, and how to leverage the EON Tuner to optimize your model. From there, we built a second and third model with the new Experiments feature in Edge Impulse to allow us to evaluate different options and results. With this, you can easily refine and enhance your models, showcasing the power and simplicity of Edge Impulse's new Experiments feature for continuous improvement in machine learning projects.