blob: df55a83a6f35bad0ba7a8dfcc8723b86cf613897 [file] [log] [blame]
Nina Drozd05c1c5a2023-08-22 12:41:55 +01001/*
2 * SPDX-FileCopyrightText: Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
3 * SPDX-License-Identifier: Apache-2.0
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17#ifndef INF_RUNNER_MICRO_MUTABLE_ALLOPS_RESOLVER_HPP
18#define INF_RUNNER_MICRO_MUTABLE_ALLOPS_RESOLVER_HPP
19
20#include <tensorflow/lite/micro/micro_mutable_op_resolver.h>
21
22constexpr int kNumberOperators = 97;
23
24namespace arm {
25namespace app {
26
27 inline tflite::MicroMutableOpResolver<kNumberOperators> get_resolver() {
28 tflite::MicroMutableOpResolver<kNumberOperators> micro_op_resolver;
29
30 micro_op_resolver.AddAbs();
31 micro_op_resolver.AddAdd();
32 micro_op_resolver.AddAddN();
33 micro_op_resolver.AddArgMax();
34 micro_op_resolver.AddArgMin();
35 micro_op_resolver.AddAssignVariable();
36 micro_op_resolver.AddAveragePool2D();
37 micro_op_resolver.AddBatchToSpaceNd();
38 micro_op_resolver.AddBroadcastArgs();
39 micro_op_resolver.AddBroadcastTo();
40 micro_op_resolver.AddCallOnce();
41 micro_op_resolver.AddCast();
42 micro_op_resolver.AddCeil();
43 micro_op_resolver.AddCircularBuffer();
44 micro_op_resolver.AddConcatenation();
45 micro_op_resolver.AddConv2D();
46 micro_op_resolver.AddCos();
47 micro_op_resolver.AddCumSum();
48 micro_op_resolver.AddDepthToSpace();
49 micro_op_resolver.AddDepthwiseConv2D();
50 micro_op_resolver.AddDequantize();
51 micro_op_resolver.AddDetectionPostprocess();
52 micro_op_resolver.AddDiv();
53 micro_op_resolver.AddElu();
54 micro_op_resolver.AddEqual();
55 micro_op_resolver.AddEthosU();
56 micro_op_resolver.AddExp();
57 micro_op_resolver.AddExpandDims();
58 micro_op_resolver.AddFill();
59 micro_op_resolver.AddFloor();
60 micro_op_resolver.AddFloorDiv();
61 micro_op_resolver.AddFloorMod();
62 micro_op_resolver.AddFullyConnected();
63 micro_op_resolver.AddGather();
64 micro_op_resolver.AddGatherNd();
65 micro_op_resolver.AddGreater();
66 micro_op_resolver.AddGreaterEqual();
67 micro_op_resolver.AddHardSwish();
68 micro_op_resolver.AddIf();
69 micro_op_resolver.AddL2Normalization();
70 micro_op_resolver.AddL2Pool2D();
71 micro_op_resolver.AddLeakyRelu();
72 micro_op_resolver.AddLess();
73 micro_op_resolver.AddLessEqual();
74 micro_op_resolver.AddLog();
75 micro_op_resolver.AddLogicalAnd();
76 micro_op_resolver.AddLogicalNot();
77 micro_op_resolver.AddLogicalOr();
78 micro_op_resolver.AddLogistic();
79 micro_op_resolver.AddLogSoftmax();
80 micro_op_resolver.AddMaxPool2D();
81 micro_op_resolver.AddMaximum();
82 micro_op_resolver.AddMean();
83 micro_op_resolver.AddMinimum();
84 micro_op_resolver.AddMirrorPad();
85 micro_op_resolver.AddMul();
86 micro_op_resolver.AddNeg();
87 micro_op_resolver.AddNotEqual();
88 micro_op_resolver.AddPack();
89 micro_op_resolver.AddPad();
90 micro_op_resolver.AddPadV2();
91 micro_op_resolver.AddPrelu();
92 micro_op_resolver.AddQuantize();
93 micro_op_resolver.AddReadVariable();
94 micro_op_resolver.AddReduceMax();
95 micro_op_resolver.AddRelu();
96 micro_op_resolver.AddRelu6();
97 micro_op_resolver.AddReshape();
98 micro_op_resolver.AddResizeBilinear();
99 micro_op_resolver.AddResizeNearestNeighbor();
100 micro_op_resolver.AddRound();
101 micro_op_resolver.AddRsqrt();
102 micro_op_resolver.AddSelectV2();
103 micro_op_resolver.AddShape();
104 micro_op_resolver.AddSin();
105 micro_op_resolver.AddSlice();
106 micro_op_resolver.AddSoftmax();
107 micro_op_resolver.AddSpaceToBatchNd();
108 micro_op_resolver.AddSpaceToDepth();
109 micro_op_resolver.AddSplit();
110 micro_op_resolver.AddSplitV();
111 micro_op_resolver.AddSqrt();
112 micro_op_resolver.AddSquare();
113 micro_op_resolver.AddSquaredDifference();
114 micro_op_resolver.AddSqueeze();
115 micro_op_resolver.AddStridedSlice();
116 micro_op_resolver.AddSub();
117 micro_op_resolver.AddSum();
118 micro_op_resolver.AddSvdf();
119 micro_op_resolver.AddTanh();
120 micro_op_resolver.AddTranspose();
121 micro_op_resolver.AddTransposeConv();
122 micro_op_resolver.AddUnidirectionalSequenceLSTM();
123 micro_op_resolver.AddUnpack();
124 micro_op_resolver.AddVarHandle();
125 micro_op_resolver.AddWhile();
126 micro_op_resolver.AddZerosLike();
127
128 return micro_op_resolver;
129 }
130
131} /* namespace app */
132} /* namespace arm */
133
134#endif /* INF_RUNNER_MICRO_MUTABLE_ALLOPS_RESOLVER_HPP */