For a more detailed description of the build graph with all major components, see Building.
There are source files in the repository that form the core of the Machine Leaning flow for all the use cases. These are exposed as APIs that the examples can use and even be combined to form chained use cases. The API sources are designed to be portable across platforms and provide functionality for preprocessing of data, running an inference, and postprocessing of results. These allow a common flow for all use cases with minor differences in how each of these blocks are instantiated.
As an independent CMake project, these APIs can be used by or integrated into other projects easily. We also produce CMSIS Packs with these sources, so they could be used in all tools/IDEs (for example, Arm® Development Studio and Keil® µVision®) that support the use of CMSIS Packs.
To run an ML application on the Cortex-M and Ethos-U NPU, please, follow these steps:
NOTE: A Docker image built from the
Dockerfileprovided will have all the required packages installed.
To get familiar with these steps, you can follow the quick start guide.
Note: The default flow assumes Arm® Ethos™-U55 NPU usage, configured to use 128 Multiply-Accumulate units and is sharing SRAM with the Arm® Cortex®-M55.
Ml embedded evaluation kit supports:
Ethos™-U NPU Default MACs/cc Other MACs/cc supported Default Memory Mode Other Memory Modes supported Ethos™-U55 128 32, 64, 256 Shared_Sram Sram_Only Ethos™-U65 256 512 Dedicated_Sram Shared_Sram
For more information see Building.
For more details see full documentation:
Contributions are only accepted under the following conditions:
The contribution have certified origin and give us your permission. To manage this process we use Developer Certificate of Origin (DCO) V1.1. To indicate that contributors agree to the terms of the DCO, it's necessary "sign off" the contribution by adding a line with name and e-mail address to every git commit message:
Signed-off-by: John Doe <firstname.lastname@example.org>
This can be done automatically by adding the
-s option to your
git commit command. You must use your real name, no pseudonyms or anonymous contributions are accepted.
You give permission according to the Apache License 2.0.
In each source file, include the following copyright notice:
/* * SPDX-FileCopyrightText: Copyright <years additions were made to project> <your name>, Arm Limited and/or its affiliates <email@example.com> * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
This repository follows a set of guidelines, best practices, programming styles and conventions, see:
Contributions must go through code review. Code reviews are performed through the mlplatform.org Gerrit server. Contributors need to sign up to this Gerrit server with their GitHub account credentials. In order to be merged a patch needs to:
Prior to submitting a patch for review please make sure that all build variants works and unit tests pass. Contributions go through testing at the continuous integration system. All builds, tests and checks must pass before a contribution gets merged to the main branch.
Please, if you want to start public discussion, raise any issues or questions related to this repository, use https://discuss.mlplatform.org/c/ml-embedded-evaluation-kit forum.
The ML Embedded applications samples are provided under the Apache 2.0 license, see License Apache 2.0.
Application input data sample files are provided under their original license:
|Automatic Speech Recognition Samples||Creative Commons Attribution 4.0 International Public License||http://www.openslr.org/12/|
|Image Classification Samples||Creative Commons Attribution 1.0||https://www.pexels.com|
|Keyword Spotting Samples||Creative Commons Attribution 4.0 International Public License||http://download.tensorflow.org/data/speech_commands_v0.02.tar.gz|
|Keyword Spotting and Automatic Speech Recognition Samples||Creative Commons Attribution 4.0 International Public License||http://download.tensorflow.org/data/speech_commands_v0.02.tar.gz|
|Visual Wake Word Samples||Creative Commons Attribution 1.0||https://www.pexels.com|
|Noise Reduction Samples||Creative Commons Attribution 4.0 International Public License||https://datashare.ed.ac.uk/handle/10283/2791/|
|Object Detection Samples||Creative Commons Attribution 1.0||https://www.pexels.com|