LogoLogo
HomeDocsAPIProjectsForum
  • Getting Started
    • For beginners
    • For ML practitioners
    • For embedded engineers
  • Frequently asked questions
  • Tutorials
    • End-to-end tutorials
      • Continuous motion recognition
      • Responding to your voice
      • Recognize sounds from audio
      • Adding sight to your sensors
        • Collecting image data from the Studio
        • Collecting image data with your mobile phone
        • Collecting image data with the OpenMV Cam H7 Plus
      • Object detection
        • Detect objects using MobileNet SSD
        • Detect objects with FOMO
      • Sensor fusion
      • Sensor fusion using Embeddings
      • Processing PPG input with HR/HRV Features Block
      • Industrial Anomaly Detection on Arduino® Opta® PLC
    • Advanced inferencing
      • Continuous audio sampling
      • Multi-impulse
      • Count objects using FOMO
    • API examples
      • Running jobs using the API
      • Python API Bindings Example
      • Customize the EON Tuner
      • Ingest multi-labeled data using the API
      • Trigger connected board data sampling
    • ML & data engineering
      • EI Python SDK
        • Using the Edge Impulse Python SDK with TensorFlow and Keras
        • Using the Edge Impulse Python SDK to run EON Tuner
        • Using the Edge Impulse Python SDK with Hugging Face
        • Using the Edge Impulse Python SDK with Weights & Biases
        • Using the Edge Impulse Python SDK with SageMaker Studio
        • Using the Edge Impulse Python SDK to upload and download data
      • Label image data using GPT-4o
      • Label audio data using your existing models
      • Generate synthetic datasets
        • Generate image datasets using Dall·E
        • Generate keyword spotting datasets
        • Generate physics simulation datasets
        • Generate audio datasets using Eleven Labs
      • FOMO self-attention
    • Lifecycle Management
      • CI/CD with GitHub Actions
      • OTA Model Updates
        • with Nordic Thingy53 and the Edge Impulse APP
      • Data Aquisition from S3 Object Store - Golioth on AI
    • Expert network projects
  • Edge Impulse Studio
    • Organization hub
      • Users
      • Data campaigns
      • Data
      • Data transformation
      • Upload portals
      • Custom blocks
        • Transformation blocks
        • Deployment blocks
          • Deployment metadata spec
      • Health Reference Design
        • Synchronizing clinical data with a bucket
        • Validating clinical data
        • Querying clinical data
        • Transforming clinical data
        • Buildling data pipelines
    • Project dashboard
      • Select AI Hardware
    • Devices
    • Data acquisition
      • Uploader
      • Data explorer
      • Data sources
      • Synthetic data
      • Labeling queue
      • AI labeling
      • CSV Wizard (Time-series)
      • Multi-label (Time-series)
      • Tabular data (Pre-processed & Non-time-series)
      • Metadata
      • Auto-labeler [Deprecated]
    • Impulse design & Experiments
    • Bring your own model (BYOM)
    • Processing blocks
      • Raw data
      • Flatten
      • Image
      • Spectral features
      • Spectrogram
      • Audio MFE
      • Audio MFCC
      • Audio Syntiant
      • IMU Syntiant
      • HR/HRV features
      • Building custom processing blocks
        • Hosting custom DSP blocks
      • Feature explorer
    • Learning blocks
      • Classification (Keras)
      • Anomaly detection (K-means)
      • Anomaly detection (GMM)
      • Visual anomaly detection (FOMO-AD)
      • Regression (Keras)
      • Transfer learning (Images)
      • Transfer learning (Keyword Spotting)
      • Object detection (Images)
        • MobileNetV2 SSD FPN
        • FOMO: Object detection for constrained devices
      • NVIDIA TAO (Object detection & Images)
      • Classical ML
      • Community learn blocks
      • Expert Mode
      • Custom learning blocks
    • EON Tuner
      • Search space
    • Retrain model
    • Live classification
    • Model testing
    • Performance calibration
    • Deployment
      • EON Compiler
      • Custom deployment blocks
    • Versioning
  • Tools
    • API and SDK references
    • Edge Impulse CLI
      • Installation
      • Serial daemon
      • Uploader
      • Data forwarder
      • Impulse runner
      • Blocks
      • Himax flash tool
    • Edge Impulse for Linux
      • Linux Node.js SDK
      • Linux Go SDK
      • Linux C++ SDK
      • Linux Python SDK
      • Flex delegates
    • Edge Impulse Python SDK
  • Run inference
    • C++ library
      • As a generic C++ library
      • On your desktop computer
      • On your Zephyr-based Nordic Semiconductor development board
    • Linux EIM Executable
    • WebAssembly
      • Through WebAssembly (Node.js)
      • Through WebAssembly (browser)
    • Docker container
    • Edge Impulse firmwares
  • Edge AI Hardware
    • Overview
    • MCU
      • Nordic Semi nRF52840 DK
      • Nordic Semi nRF5340 DK
      • Nordic Semi nRF9160 DK
      • Nordic Semi nRF9161 DK
      • Nordic Semi nRF9151 DK
      • Nordic Semi nRF7002 DK
      • Nordic Semi Thingy:53
      • Nordic Semi Thingy:91
    • CPU
      • macOS
      • Linux x86_64
    • Mobile Phone
    • Porting Guide
  • Integrations
    • Arduino Machine Learning Tools
    • NVIDIA Omniverse
    • Embedded IDEs - Open-CMSIS
    • Scailable
    • Weights & Biases
  • Pre-built datasets
    • Continuous gestures
    • Running faucet
    • Keyword spotting
    • LiteRT (Tensorflow Lite) reference models
  • Tips & Tricks
    • Increasing model performance
    • Data augmentation
    • Inference performance metrics
    • Optimize compute time
    • Adding parameters to custom blocks
    • Combine Impulses
  • Concepts
    • Glossary
    • Data Engineering
      • Audio Feature Extraction
      • Motion Feature Extraction
    • ML Concepts
      • Neural Networks
        • Layers
        • Activation Functions
        • Loss Functions
        • Optimizers
          • Learned Optimizer (VeLO)
        • Epochs
      • Evaluation Metrics
    • Edge AI
      • Introduction to edge AI
      • What is edge computing?
      • What is machine learning (ML)?
      • What is edge AI?
      • How to choose an edge AI device
      • Edge AI lifecycle
      • What is edge MLOps?
      • What is Edge Impulse?
      • Case study: Izoelektro smart grid monitoring
      • Test and certification
    • What is embedded ML, anyway?
    • What is edge machine learning (edge ML)?
Powered by GitBook
On this page
  • Introduction
  • Key Benefits
  • What Prompts a Version Change
  • How It Works
  • Getting Started
  • Creating a Version
  • Viewing Versions
  • Reverting to a Previous Version
  • Working with Organizations
  • Best Practices
  • Conclusion
  1. Edge Impulse Studio

Versioning

PreviousEON CompilerNextAPI and SDK references

Last updated 6 months ago

In this documentation, we will explore versioning in Edge Impulse. Edge Impulse allows you to version control individual blocks and your entire project and pipeline. Versioning is crucial to project management, ensuring you can track changes, revert to previous states, and collaborate effectively with your team. We will draw comparisons to Git versioning to help illustrate these concepts and mainly focus on project-level versioning.

Introduction

Versioning allows you to create snapshots of your project at different stages of development. This feature is particularly useful for managing complex machine learning projects, where tracking changes and maintaining a history of modifications is essential. Similar to how Git manages different versions of code, Edge Impulse’s versioning system helps manage the evolution of your machine learning projects.

Key Benefits

  • Revert to Previous Versions: Restore your project to a prior state if needed, similar to checking out a previous commit in Git.

  • Collaborate Effectively: Share specific versions of your project with team members, like sharing branches or commits in Git.

  • Maintain History: Keep a detailed record of all changes made to your project, much like the commit history in Git.

What Prompts a Version Change

Version changes are prompted by significant modifications to the project, such as:

  • Model Architecture: Alterations to the structure of your machine learning model.

  • Dataset: Additions or modifications to the training or testing data.

  • Hardware Target Configuration: Changes to the target hardware configuration for deployment.

  • Other Significant Changes: Any other substantial changes that affect the performance or functionality of your project.

How It Works

Edge Impulse provides a straightforward versioning system that allows you to create and manage versions of your projects. Each version captures the current state of your project, including data, configurations, models, and settings. This is comparable to how a Git commit captures the state of a codebase at a particular point in time.

The following diagram illustrates the workflow for creating and managing versions in Edge Impulse:

Getting Started

To start using the versioning feature, log in to your Edge Impulse account and open a project. Navigate to the "Version" tab and begin creating versions to manage your project's development effectively.

Creating a Version

To create a version of your project, follow these steps:

  1. Navigate to Your Project: Open the project you want to version in the Edge Impulse Studio.

  2. Create a New Version: Click on the "Version" tab in the left-hand menu. Then, click the "Store your current project version" button.

  3. Name Your Version: Provide a meaningful name and description for your version. This will help you identify it later, similar to writing a commit message in Git.

    This is a great way to share your work with the community.

4. **Save the Version**: Click "Save" to create the version. Your project is now versioned, and the current state is saved, much like creating a commit in Git.

![Save Version](../../.gitbook/assets/save-version.png)

Viewing Versions

You will see a list of all versions created for the project.

Each version includes:

  • The version number

  • The creation date

  • The user who created the version

  • The description

  • The training accuracy

  • The testing accuracy

  • The number of data samples

  • The visibility

Reverting to a Previous Version

  1. Select a Version: Choose the version you want to revert to from the list.

  2. Revert: Click the "Revert to this version" button. Confirm your choice in the dialog that appears, similar to checking out a previous commit or branch in Git.

Working with Organizations

Edge Impulse also supports organizational management, allowing multiple users to collaborate on projects within a structured environment. Here’s how versioning can be particularly beneficial within organizations:

  • Centralized Management: Administrators can oversee all projects, ensuring consistent versioning practices across the team.

  • Team Collaboration: Multiple team members can access and work on the same project versions, facilitating smoother collaboration.

  • Access Control: Set permissions to control who can create, view, or revert versions, ensuring that only authorized personnel can make significant changes.

  • Audit Trails: Maintain an audit trail of all version changes across projects within the organization, which is essential for accountability and compliance.

Best Practices

  • Regular Versioning: Create versions at key milestones in your project development to ensure you have a record of significant changes, similar to making frequent commits in Git.

  • Meaningful Descriptions: When creating a version, use descriptive names and detailed descriptions to help identify the purpose and changes included in that version, akin to writing clear commit messages in Git.

  • Collaborative Versioning: Encourage team members to create versions before making significant changes. This practice ensures that everyone can revert to a stable state if needed, much like using branches in Git for collaboration.

Conclusion

Versioning is an essential feature for managing machine learning projects in Edge Impulse. By creating and managing versions, you can track changes, collaborate effectively, and maintain a history of your project’s development. Start versioning your projects today to enhance your workflow and project management.

Track Changes: Monitor the evolution of your project over time, akin to committing changes in .

If you want to reference your project in the Edge Impulse , check the Publish this version under the Apache 2.0 license.

For further assistance, visit our .

Git version control
public project repository
forum
Versioning projects
Version workflow
Store your current project version
Detail Version Changes
Versioning projects
Select Version
Revert Version