Nina Drozd | 05c1c5a | 2023-08-22 12:41:55 +0100 | [diff] [blame^] | 1 | /* |
| 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 | |
| 22 | constexpr int kNumberOperators = 97; |
| 23 | |
| 24 | namespace arm { |
| 25 | namespace 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 */ |