-
Notifications
You must be signed in to change notification settings - Fork 252
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #34 from majianjia/dev update documentation
Dev
- Loading branch information
Showing
42 changed files
with
136 additions
and
386 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,6 +12,11 @@ NNoM is a higher-level layer-based Neural Network library specifically for micro | |
- High-performance backend selections. | ||
- Onboard (MCU) evaluation tools; Runtime analysis, Top-k, Confusion matrix... | ||
|
||
**Licenses** | ||
|
||
NNoM is released under Apache License 2.0 since nnom-V0.2.0. | ||
License and copyright information can be found within the code. | ||
|
||
## Why NNoM? | ||
The aims of NNoM is to provide a light-weight, user-friendly and flexible interface for fast deploying. | ||
|
||
|
@@ -27,14 +32,12 @@ After 2014, the development of Neural Networks are more focus on structure optim | |
However, the available NN libs for MCU are too low-level which make it sooooo difficult to use with these complex strucures. | ||
|
||
Therefore, we build NNoM to help embedded developers to faster and simpler deploying NN model directly to MCU. | ||
> NNoM will manage the strucutre, memory and everything else for developer. All you need is feeding your measurements then get the results. | ||
> NNoM will manage the strucutre, memory and everything else for the developer. All you need to do is feeding your new measurements and getting the results. | ||
**NNoM is now working closely with Keras (You can easily learn [**Keras**](https://keras.io/) in 30 seconds!).** | ||
There is no need to learn TensorFlow/Lite or other libs. | ||
|
||
|
||
--- | ||
|
||
## Documentations | ||
API manuals are available in **[API Manual](https://majianjia.github.io/nnom/)** | ||
|
||
|
@@ -50,8 +53,6 @@ API manuals are available in **[API Manual](https://majianjia.github.io/nnom/)** | |
|
||
[RT-Thread-MNIST example (中文例子)](docs/example_mnist_simple_cn.md) | ||
|
||
--- | ||
|
||
## Examples | ||
|
||
**Documented examples** | ||
|
@@ -64,7 +65,6 @@ API manuals are available in **[API Manual](https://majianjia.github.io/nnom/)** | |
|
||
Please check [examples](https://github.com/majianjia/nnom/tree/master/examples) for more applications. | ||
|
||
--- | ||
|
||
|
||
## Available Operations | ||
|
@@ -116,21 +116,16 @@ Activation can be used by itself as layer, or can be attached to the previous la | |
| Substraction | Beta|Sub()|| | ||
| Dot | Under Dev. ||| | ||
|
||
|
||
|
||
## Dependencies | ||
|
||
NNoM now use the local pure C backend implementation by default. Thus, there is no special dependency needed. | ||
|
||
|
||
|
||
## Optimization | ||
You can select [CMSIS-NN/DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/NN) as the backend for about 5x performance with ARM-Cortex-M4/7/33/35P. | ||
|
||
Check [Porting and optimising Guide](docs/Porting_and_Optimisation_Guide.md) for detail. | ||
|
||
|
||
|
||
## Contacts | ||
Jianjia Ma | ||
|
||
|
@@ -139,4 +134,3 @@ [email protected] or [email protected] | |
## Citation Required | ||
Please contact us using above details. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
## Keyword Spotting example | ||
|
||
> This example is under development, the codes are supposed to be changed during the period. | ||
Documentation under writing. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
This is a very simple convolution example following the Keras tutorial: | ||
|
||
https://adventuresinmachinelearning.com/keras-tutorial-cnn-11-lines/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
|
||
import os | ||
|
||
if(not os.path.exists('CMSIS_5')): | ||
os.system('git clone https://github.com/ARM-software/CMSIS_5.git') | ||
|
||
ROOT=os.path.abspath('../..') | ||
|
||
env = Environment() | ||
env.Replace( | ||
ARCOMSTR = 'AR $SOURCE', | ||
ASCOMSTR = 'AS $SOURCE', | ||
ASPPCOMSTR = 'AS $SOURCE', | ||
CCCOMSTR = 'CC $SOURCE', | ||
CXXCOMSTR = 'CXX $SOURCE', | ||
LINKCOMSTR = 'LINK $TARGET' | ||
) | ||
|
||
objs = [] | ||
|
||
objs += Glob('CMSIS_5/CMSIS/NN/Source/*/*.c') | ||
objs += Glob('CMSIS_5/CMSIS/DSP/Source/BasicMathFunctions/arm_*.c') | ||
objs += Glob('mcu/main_cnn.c') | ||
|
||
|
||
env.Append(CPPPATH=['CMSIS_5/CMSIS/NN/Include', | ||
'CMSIS_5/CMSIS/DSP/Include', | ||
'CMSIS_5/CMSIS/Core/Include']) | ||
env.Append(CPPDEFINES=['__ARM_ARCH_8M_BASE__']) | ||
env.Append(CCFLAGS=['-g','-O0','-std=gnu99']) | ||
|
||
objs +=Glob('%s/src/*.c'%(ROOT)) | ||
env.Append(CPPPATH=['%s/inc'%(ROOT),'%s/port'%(ROOT)]) | ||
env.Append(CPPDEFINES=['USE_NNOM_OUTPUT_SAVE']) | ||
|
||
if(os.getenv('USE_CMSIS_NN') == 'YES'): | ||
env.Append(CPPDEFINES=['NNOM_USING_CMSIS_NN']) | ||
|
||
env.Program('mnist',objs) | ||
|
File renamed without changes.
Empty file.
Oops, something went wrong.