All Projects → ARM-software → Armnn

ARM-software / Armnn

Licence: mit
Arm NN ML Software. The code here is a read-only mirror of https://review.mlplatform.org/admin/repos/ml/armnn

Projects that are alternatives of or similar to Armnn

Graph nets
Build Graph Nets in Tensorflow
Stars: ✭ 5,051 (+625.72%)
Mutual labels:  neural-networks
Deep Learning For Hackers
Machine Learning tutorials with TensorFlow 2 and Keras in Python (Jupyter notebooks included) - (LSTMs, Hyperameter tuning, Data preprocessing, Bias-variance tradeoff, Anomaly Detection, Autoencoders, Time Series Forecasting, Object Detection, Sentiment Analysis, Intent Recognition with BERT)
Stars: ✭ 586 (-15.8%)
Mutual labels:  neural-networks
Chainer
A flexible framework of neural networks for deep learning
Stars: ✭ 5,656 (+712.64%)
Mutual labels:  neural-networks
Tensorflow Value Iteration Networks
TensorFlow implementation of the Value Iteration Networks (NIPS '16) paper
Stars: ✭ 549 (-21.12%)
Mutual labels:  neural-networks
Tez
Tez is a super-simple and lightweight Trainer for PyTorch. It also comes with many utils that you can use to tackle over 90% of deep learning projects in PyTorch.
Stars: ✭ 580 (-16.67%)
Mutual labels:  neural-networks
Pytorch Crf
(Linear-chain) Conditional random field in PyTorch.
Stars: ✭ 633 (-9.05%)
Mutual labels:  neural-networks
Sense
Enhance your application with the ability to see and interact with humans using any RGB camera.
Stars: ✭ 522 (-25%)
Mutual labels:  neural-networks
Deep learning and the game of go
Code and other material for the book "Deep Learning and the Game of Go"
Stars: ✭ 677 (-2.73%)
Mutual labels:  neural-networks
Efficient Segmentation Networks
Lightweight models for real-time semantic segmentationon PyTorch (include SQNet, LinkNet, SegNet, UNet, ENet, ERFNet, EDANet, ESPNet, ESPNetv2, LEDNet, ESNet, FSSNet, CGNet, DABNet, Fast-SCNN, ContextNet, FPENet, etc.)
Stars: ✭ 579 (-16.81%)
Mutual labels:  neural-networks
Tensorflow 101
TensorFlow 101: Introduction to Deep Learning for Python Within TensorFlow
Stars: ✭ 642 (-7.76%)
Mutual labels:  neural-networks
Keras Rl
Deep Reinforcement Learning for Keras.
Stars: ✭ 5,166 (+642.24%)
Mutual labels:  neural-networks
Awesome Bert Nlp
A curated list of NLP resources focused on BERT, attention mechanism, Transformer networks, and transfer learning.
Stars: ✭ 567 (-18.53%)
Mutual labels:  neural-networks
Machine Learning Octave
🤖 MatLab/Octave examples of popular machine learning algorithms with code examples and mathematics being explained
Stars: ✭ 637 (-8.48%)
Mutual labels:  neural-networks
Layer
Neural network inference the Unix way
Stars: ✭ 539 (-22.56%)
Mutual labels:  neural-networks
Test Tube
Python library to easily log experiments and parallelize hyperparameter search for neural networks
Stars: ✭ 663 (-4.74%)
Mutual labels:  neural-networks
Keras Js
Run Keras models in the browser, with GPU support using WebGL
Stars: ✭ 4,855 (+597.56%)
Mutual labels:  neural-networks
Nengo
A Python library for creating and simulating large-scale brain models
Stars: ✭ 615 (-11.64%)
Mutual labels:  neural-networks
Sciblog support
Support content for my blog
Stars: ✭ 694 (-0.29%)
Mutual labels:  neural-networks
Hivemind
Decentralized deep learning in PyTorch. Built to train models on thousands of volunteers across the world.
Stars: ✭ 661 (-5.03%)
Mutual labels:  neural-networks
Deep Learning Guide
An evolving guide to learning Deep Learning effectively.
Stars: ✭ 642 (-7.76%)
Mutual labels:  neural-networks

Introduction

Arm NN is a key component of the machine learning platform, which is part of the Linaro Machine Intelligence Initiative.

The Arm NN SDK is a set of open-source software and tools that enables machine learning workloads on power-efficient devices. It provides a bridge between existing neural network frameworks and power-efficient Cortex-A CPUs, Arm Mali GPUs and Arm Ethos NPUs.

Arm NN SDK utilizes the Compute Library to target programmable cores, such as Cortex-A CPUs and Mali GPUs, as efficiently as possible. To target Ethos NPUs the NPU-Driver is utilized. We also welcome new contributors to provide their own driver and backend. Note, Arm NN does not provide support for Cortex-M CPUs.

The latest release supports models created with Caffe, TensorFlow, TensorFlow Lite (TfLite) and ONNX. Arm NN analysis a given model and replaces the operations within it with implementations particularly designed for the hardware you want to execute it on. This results in a great boost of execution speed. How much faster your neural network can be executed depends on the operations it contains and the available hardware. Below you can see the speedup we've been experiencing in our experiments with a few common networks.

Arm NN is written using portable C++14 and the build system uses CMake, therefore it is possible to build for a wide variety of target platforms, from a wide variety of host environments.

Getting started: Software tools overview

Depending on what kind of framework (Tensorflow, Caffe, ONNX) you've been using to create your model there are multiple software tools available within Arm NN that can serve your needs.

Generally, there is a parser available for each supported framework. Each parser allows you to run models from one framework e.g. the TfLite-Parser lets you run TfLite models. You can integrate these parsers into your own application to load, optimize and execute your model. We also provide python bindings for our parsers and the Arm NN core. We call the result PyArmNN. Therefore your application can be conveniently written in either C++ using the "original" Arm NN library or in Python using PyArmNN. You can find tutorials on how to setup and use our parsers in our doxygen documentation. The latest version can be found in the wiki section of this repository.

Admittedly, building Arm NN and its parsers from source is not always easy to accomplish. We are trying to increase our usability by providing Arm NN as a Debian package. Our debian package is the most easy way to install the Arm NN Core, the TfLite Parser and PyArmNN (More support is about to come): Installation via Apt Repository

The newest member in Arm NNs software toolkit is the TfLite Delegate. The delegate can be integrated in TfLite. TfLite will then delegate operations, that can be accelerated with Arm NN, to Arm NN. Every other operation will still be executed with the usual TfLite runtime. This is our recommended way to accelerate TfLite models. As with our parsers there are tutorials in our doxygen documentation that can be found in the wiki section.

If you would like to use Arm NN on Android you can follow this guide which explains how to build Arm NN using the AndroidNDK. But you might also want to take a look at another repository which implements a hardware abstraction layer (HAL) for Android. The repository is called Android-NN-Driver and when integrated into Android it will automatically run neural networks with Arm NN.

Where to find more information

The section above introduces the most important tools that Arm NN provides. You can find a complete list in our doxygen documentation. The latest version can be found in the wiki section of our github repository.

For FAQs and troubleshooting advice, see FAQ.md or take a look at previous github issues.

Note

  1. The following tools are deprecated in Arm NN 21.02 and will be removed in 21.05:

    • TensorflowParser
    • CaffeParser
    • Quantizer
  2. We are currently in the process of removing boost as a dependency to Arm NN. This process is finished for everything apart from our unit tests. This means you don't need boost to build and use Arm NN but you need it to execute our unit tests. Boost will soon be removed from Arm NN entirely.

Contributions

The Arm NN project welcomes contributions. For more details on contributing to Arm NN see the Contributing page on the MLPlatform.org website, or see the Contributor Guide.

Particularly if you'd like to implement your own backend next to our CPU, GPU and NPU backends there are guides for backend development: Backend development guide, Dynamic backend development guide

Disclaimer

The armnn/tests directory contains tests used during Arm NN development. Many of them depend on third-party IP, model protobufs and image files not distributed with Arm NN. The dependencies of some of the tests are available freely on the Internet, for those who wish to experiment, but they won't run out of the box.

License

Arm NN is provided under the MIT license. See LICENSE for more information. Contributions to this project are accepted under the same license.

Individual files contain the following tag instead of the full license text.

SPDX-License-Identifier: MIT

This enables machine processing of license information based on the SPDX License Identifiers that are available here: http://spdx.org/licenses/

Third-party

Third party tools used by Arm NN:

Tool License (SPDX ID) Description Version Provenience
cxxopts MIT A lightweight C++ option parser library SHA 12e496da3d486b87fa9df43edea65232ed852510 https://github.com/jarro2783/cxxopts
fmt MIT {fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. 7.0.1 https://github.com/fmtlib/fmt
ghc MIT A header-only single-file std::filesystem compatible helper library 1.3.2 https://github.com/gulrak/filesystem
half MIT IEEE 754 conformant 16-bit half-precision floating point library 1.12.0 http://half.sourceforge.net
mapbox/variant BSD A header-only alternative to 'boost::variant' 1.1.3 https://github.com/mapbox/variant
stb MIT Image loader, resize and writer 2.16 https://github.com/nothings/stb
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].