Skip to content

Commit

Permalink
readme docs
Browse files Browse the repository at this point in the history
  • Loading branch information
trylaarsdam committed Jun 7, 2023
1 parent dbe5e39 commit 2e7facb
Show file tree
Hide file tree
Showing 2 changed files with 125 additions and 1 deletion.
124 changes: 124 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# Tensorflow Lite for Microcontrollers

A PlatformIO library with the complete and (As of Jun 1, 2023) up-to-date version of Tensorflow Lite for Microcontrollers.

## Installation
Install the library via PlatformIO Library Manager.

## Examples
There is one example in the examples/basic-inference folder. This example was built for the Arduino Pro Portenta H7, and as such many devices may not be able to fit this example into memory. It is easy to scale down the `RAM_SIZE` define in that example, and then use your own smaller model. The purpose of having such a large example was to demonstrate that this library supports TFLM's latest features (such as LSTM layers)

## Usage
You can use this library exactly like the TFLite for Microcontrollers documentation describes, located at https://www.tensorflow.org/lite/microcontrollers. You do not need to specically include this library in your project, you can just include the TFLM headers directly, e.x.:
```cpp
#include "tensorflow/lite/micro/all_ops_resolver.h"
```

## Notes
This library is not officially supported by Google, and is not affiliated with Google in any way. This library was created because I needed to make it for work anyway, and I figured I should share my work. If you have any questions about usage, please open an issue on GitHub or contact me at `support@toddr.org`, but please check if there are any GH issues before posting/emailing me.

## Template project
You can find a template project for this library at [@trylaarsdam/pio-tflite](https://github.com/trylaarsdam/pio-tflite). This project has the complete setup for running a model using TFLM, but it is not a library, you can
just start editing `main.cpp` and go.

## Supported Operations
This library supports the following Tensorflow Lite operations:
```cpp
AddAbs();
AddAdd();
AddAddN();
AddArgMax();
AddArgMin();
AddAssignVariable();
AddAveragePool2D();
AddBatchToSpaceNd();
AddBroadcastArgs();
AddBroadcastTo();
AddCallOnce();
AddCast();
AddCeil();
AddCircularBuffer();
AddConcatenation();
AddConv2D();
AddCos();
AddCumSum();
AddDepthToSpace();
AddDepthwiseConv2D();
AddDequantize();
AddDetectionPostprocess();
AddDiv();
AddElu();
AddEqual();
AddEthosU();
AddExp();
AddExpandDims();
AddFill();
AddFloor();
AddFloorDiv();
AddFloorMod();
AddFullyConnected();
AddGather();
AddGatherNd();
AddGreater();
AddGreaterEqual();
AddHardSwish();
AddIf();
AddL2Normalization();
AddL2Pool2D();
AddLeakyRelu();
AddLess();
AddLessEqual();
AddLog();
AddLogicalAnd();
AddLogicalNot();
AddLogicalOr();
AddLogistic();
AddLogSoftmax();
AddMaxPool2D();
AddMaximum();
AddMean();
AddMinimum();
AddMirrorPad();
AddMul();
AddNeg();
AddNotEqual();
AddPack();
AddPad();
AddPadV2();
AddPrelu();
AddQuantize();
AddReadVariable();
AddReduceMax();
AddRelu();
AddRelu6();
AddReshape();
AddResizeBilinear();
AddResizeNearestNeighbor();
AddRound();
AddRsqrt();
AddSelectV2();
AddShape();
AddSin();
AddSlice();
AddSoftmax();
AddSpaceToBatchNd();
AddSpaceToDepth();
AddSplit();
AddSplitV();
AddSqrt();
AddSquare();
AddSquaredDifference();
AddSqueeze();
AddStridedSlice();
AddSub();
AddSum();
AddSvdf();
AddTanh();
AddTranspose();
AddTransposeConv();
AddUnidirectionalSequenceLSTM();
AddUnpack();
AddVarHandle();
AddWhile();
AddZerosLike();
```
2 changes: 1 addition & 1 deletion library.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Tensorflow Lite for Microcontrollers (WCL)",
"version": "1.0.0",
"version": "1.0.1",
"description": "WCL built version of TFLite for Microcontrollers. Up to date as of June 1, 2023.",
"repository":
{
Expand Down

0 comments on commit 2e7facb

Please sign in to comment.