Create Impulse
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.
This view is one of the most important, here you will build your own machine learning pipeline.
Impulse example for movement classification using accelerometer data:
Completed impulse for accelerometer motion classification.
Impulse example for object detection using images:
Completed impulse for object detection.

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 is the size of the raw features that is used for the training
  • The window increase is used to artificially create more features (and feed the learning block with more information)
  • The frequency is automatically calculated based on your training samples. You can modify this value but you currently cannot use values lower than 0.000016 (less than 1 sample every 60s).
  • Zero-pad data: Adds zero values when raw feature is missing
Below is a sketch to summarize the role of each parameters:
Window size vs. window increase.

Images

  • Axes: Images
  • Image width & height: Most of our pre-trained models work with square images.
  • Resize mode: You have three options, Squash, Fit to the shortest axis, Fit to the longest axis

Processing Block

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.
Processing blocks available.
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. It can be classification, regression, anomaly detection, image transfer learning or object detection. It can also be a custom transfer learning block (enterprise feature)
Learning blocks available with time-series projects:
Learning blocks available with time-series projects.
Learning blocks available with image projects:
Learning blocks available with image projects.
Learning blocks available with object detection projects:
Learning blocks available with object detection projects.