Impulses
After collecting data for your project, you can now create your Impulse. A complete Impulse will consist of 3 main building blocks: input block, processing block and a learning block. A project can contain multiple impulses, or Experiments, where each impulse contains either the same combination of blocks or a different combination. This allows you to view the accuracy and model prediction results for various types of learning and processing blocks, while using the same input training and testing datasets.
Experiments
The Experiments view lists all of your active impulses within your project. Want to experiment with both FOMO and MobileNet SSD simultaneously on the same dataset? No problem! Just add two impulses and use the new dropdown menu under Impulse design in the left navigation bar to switch between them. This view also allows you to view Model testing results for various model configurations in one project overview:

Impulse design
This view is one of the most important, here you will build your own machine learning pipeline.
Impulse example for motion classification and anomaly detection (multi-model) using accelerometer data

Impulse example for motion classification using multi-label sample accelerometer data

Impulse example for object detection using images

Input block
The input block indicates the type of input data you are training your model with. This can be time series (audio, vibration, movements) or images.
Time series (audio, vibration, movements)
The Input axes field lists all the axis referenced from your training dataset.
The Window size field is the amount of raw data from your sample that is used to generate features for model training.
The Window increase field is used to determine the starting point for the next window.
The Frequency (Hz) field is automatically calculated based on your training samples. Changing this value will downsample or upsample the raw data.
The Zero-pad data field adds zero values when there is not enough raw data to fit the window size.
If your project contains multi-label samples, there will be another field.
The Handling multi-label samples field allows you to configure which label is used for your window when it contains multiple labels.
Use label at end of window
: Sets the window label to the label of the last data point in the window.Use label X if anywhere present in window
: Sets the window label to one of the selected label values if that label is found anywhere within the window. If multiple selected labels are found within the window, the selected label that is found the most within the window is used. If no checked labels are found within the window, the label at the end of the window is used.
Below is a sketch to summarize the role of window size and increase.

Images
The Input axes field list all the axis referenced from your training set (image).
The Image width and Image height fields set the dimensions for resizing the raw images.
The Resize mode field sets the method for how the raw images are resized.
Fit longest axis
: Add letterboxes (padding) to the shorter axis to match the aspect ratio of the target size. Then downsample to the target size.Fit shortest axis
: Crop the longer axis to match the aspect ratio of the target size. Then downsample to the target size.Squash
: Resize the image to the target size, without preserving the aspect ratio. (This may distort the image)
Processing blocks
A processing block is basically a feature extractor. It consists of DSP (Digital Signal Processing) operations that are used to extract features that our model learns on. These operations vary depending on the type of data used in your project.
You don't have much experience with DSP? No problem, Edge Impulse usually uses a star to indicate the most recommended processing block based on your input data as shown in the image below.

In the case where the available processing blocks aren't suitable for your application, you can build your own custom processing blocks and import into your project.
Learning blocks
After adding your processing block, it is now time to add a learning block to make your impulse complete. A learning block is simply a neural network that is trained to learn on your data.
Learning blocks vary depending on what you want your model to do and the type of data in your training dataset. Algorithms include: classification, regression, anomaly detection, image transfer learning, keyword spotting or object detection. You can also create your own custom learning block (enterprise feature).
Learning blocks available with time-series projects

Learning blocks available with image projects

Learning blocks available with object detection projects

Last updated
Was this helpful?