Comments (4)
Hi @LEE-SEON-WOO,
You are referring to the legacy API. Development on that stopped a long time ago. Long before CMSIS-NN v4.0.1. When CMSIS-NN got its own repository the files were removed. CMSIS-NN is intended to be used with TFLM as CMSIS-NN is a library and not a framework. The legacy API was not bit-exact to TFLM reference kernels. The current API does not use any floating point operations.. Hope that makes it clearer.
from cmsis-nn.
Thanks for the link! Why can't NNOM use the new/existing CMSIS-NN API?
Please note it also use shift operations. The scales are converted to integer multipliers and shifts before inference, and this is done before calling CMSIS-NN (before inference). And also performance should be better than the legacy API since development stopped long time ago.
from cmsis-nn.
Hello @mansnils , thank you for your response. Unfortunately, it seems that my limited fluency in English may have caused some misunderstandings, for which I apologize for any confusion caused.
The primary reason I am raising this issue is because I believe the q-format method of quantization could be effective on MCUs as well, and I am curious about the reasons it is not supported. For example, I wonder if it is due to difficulties related to accuracy or efficiency that support is not provided.
I understand that the quantization method provided by ARM is in the form of Q(m,n), and TFLM provides it based on the formula q = S*r + Z (where q: Quant Value, S: Scale Factor, Z: Zero Point, r: real_value). From my experience using ARM's method, it seems to have several advantages. Firstly, it operates at a higher speed because it uses shift operations. Secondly, it allows for smaller additional computations and variable sizes.
As I only deal with models suitable for MCUs, I am not sure how well it works with larger models. Also, legacy APIs using the q-format are easily accessible in other open-source platforms like nnom.
Thank you.
from cmsis-nn.
Dear @mansnils,
Thank you for your response. Upon reviewing the CMSIS-NN documentation, I confirmed that the presence of _s indicates compatibility with TensorFlow Lite Micro. Additionally, when examining the algorithm, it is evident that functions such as MIN
, MAX
, and arm_nn_requantize
link are invoked. Compared to the previous _q7
link algorithms, this appears to necessitate more computations. Furthermore, I came across a statement made by the author of NNOM a while back and am writing to verify its authenticity. Here is the link for reference: link.
Best regards.
from cmsis-nn.
Related Issues (20)
- missing arm_s8_to_s16_unordered_with_offset.c when I included the pack HOT 3
- Output diff for new lstm-operator
- Confusing doc on `arm_nn_requantize`
- MVE Conv 1 x N does not handle all configurations HOT 1
- Unit tests fails to build with -O0
- Possible undefined behavior for `arm_nn_requantize` when compiling with `CMSIS_NN_USE_SINGLE_ROUNDING` HOT 9
- Inconsistency of CMSIS-NN Quantization Method(Q-format) with ARM Documentation HOT 2
- No MVE support Conv2D int16
- Move test platform to other FVPs HOT 6
- IAR compiler issues HOT 1
- Is there a roadmap? HOT 3
- Does the MVEI version of CMSIS NN have implementations of q15 and q7? HOT 1
- Vector of variable length used in arm_convolve_1x1_s8_fast HOT 1
- Documentation warning HOT 1
- What does CMSIS exactly refer to? HOT 1
- Occur an ASM error when compiling arm_nn_mat_mul_core_4x_s8 HOT 11
- reserved identifier violation HOT 6
- Is there some easy to get started guide? HOT 1
- Include/Internal/arm_nn_compiler.h: undefined __ARM_FEATURE_MVE HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cmsis-nn.