blob: 96ac28da60d7636a690740a3390c53405c0a0cc9 [file] [log] [blame]
/*
* SPDX-FileCopyrightText: Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef INF_RUNNER_MICRO_MUTABLE_ALLOPS_RESOLVER_HPP
#define INF_RUNNER_MICRO_MUTABLE_ALLOPS_RESOLVER_HPP
#include <tensorflow/lite/micro/micro_mutable_op_resolver.h>
constexpr int kNumberOperators = 97;
namespace arm {
namespace app {
/* Create our own AllOpsResolver by adding all Ops to MicroMutableOpResolver. */
inline tflite::MicroMutableOpResolver<kNumberOperators> CreateAllOpsResolver() {
tflite::MicroMutableOpResolver<kNumberOperators> mutableAllOpResolver;
mutableAllOpResolver.AddAbs();
mutableAllOpResolver.AddAdd();
mutableAllOpResolver.AddAddN();
mutableAllOpResolver.AddArgMax();
mutableAllOpResolver.AddArgMin();
mutableAllOpResolver.AddAssignVariable();
mutableAllOpResolver.AddAveragePool2D();
mutableAllOpResolver.AddBatchToSpaceNd();
mutableAllOpResolver.AddBroadcastArgs();
mutableAllOpResolver.AddBroadcastTo();
mutableAllOpResolver.AddCallOnce();
mutableAllOpResolver.AddCast();
mutableAllOpResolver.AddCeil();
mutableAllOpResolver.AddCircularBuffer();
mutableAllOpResolver.AddConcatenation();
mutableAllOpResolver.AddConv2D();
mutableAllOpResolver.AddCos();
mutableAllOpResolver.AddCumSum();
mutableAllOpResolver.AddDepthToSpace();
mutableAllOpResolver.AddDepthwiseConv2D();
mutableAllOpResolver.AddDequantize();
mutableAllOpResolver.AddDetectionPostprocess();
mutableAllOpResolver.AddDiv();
mutableAllOpResolver.AddElu();
mutableAllOpResolver.AddEqual();
mutableAllOpResolver.AddEthosU();
mutableAllOpResolver.AddExp();
mutableAllOpResolver.AddExpandDims();
mutableAllOpResolver.AddFill();
mutableAllOpResolver.AddFloor();
mutableAllOpResolver.AddFloorDiv();
mutableAllOpResolver.AddFloorMod();
mutableAllOpResolver.AddFullyConnected();
mutableAllOpResolver.AddGather();
mutableAllOpResolver.AddGatherNd();
mutableAllOpResolver.AddGreater();
mutableAllOpResolver.AddGreaterEqual();
mutableAllOpResolver.AddHardSwish();
mutableAllOpResolver.AddIf();
mutableAllOpResolver.AddL2Normalization();
mutableAllOpResolver.AddL2Pool2D();
mutableAllOpResolver.AddLeakyRelu();
mutableAllOpResolver.AddLess();
mutableAllOpResolver.AddLessEqual();
mutableAllOpResolver.AddLog();
mutableAllOpResolver.AddLogicalAnd();
mutableAllOpResolver.AddLogicalNot();
mutableAllOpResolver.AddLogicalOr();
mutableAllOpResolver.AddLogistic();
mutableAllOpResolver.AddLogSoftmax();
mutableAllOpResolver.AddMaxPool2D();
mutableAllOpResolver.AddMaximum();
mutableAllOpResolver.AddMean();
mutableAllOpResolver.AddMinimum();
mutableAllOpResolver.AddMirrorPad();
mutableAllOpResolver.AddMul();
mutableAllOpResolver.AddNeg();
mutableAllOpResolver.AddNotEqual();
mutableAllOpResolver.AddPack();
mutableAllOpResolver.AddPad();
mutableAllOpResolver.AddPadV2();
mutableAllOpResolver.AddPrelu();
mutableAllOpResolver.AddQuantize();
mutableAllOpResolver.AddReadVariable();
mutableAllOpResolver.AddReduceMax();
mutableAllOpResolver.AddRelu();
mutableAllOpResolver.AddRelu6();
mutableAllOpResolver.AddReshape();
mutableAllOpResolver.AddResizeBilinear();
mutableAllOpResolver.AddResizeNearestNeighbor();
mutableAllOpResolver.AddRound();
mutableAllOpResolver.AddRsqrt();
mutableAllOpResolver.AddSelectV2();
mutableAllOpResolver.AddShape();
mutableAllOpResolver.AddSin();
mutableAllOpResolver.AddSlice();
mutableAllOpResolver.AddSoftmax();
mutableAllOpResolver.AddSpaceToBatchNd();
mutableAllOpResolver.AddSpaceToDepth();
mutableAllOpResolver.AddSplit();
mutableAllOpResolver.AddSplitV();
mutableAllOpResolver.AddSqrt();
mutableAllOpResolver.AddSquare();
mutableAllOpResolver.AddSquaredDifference();
mutableAllOpResolver.AddSqueeze();
mutableAllOpResolver.AddStridedSlice();
mutableAllOpResolver.AddSub();
mutableAllOpResolver.AddSum();
mutableAllOpResolver.AddSvdf();
mutableAllOpResolver.AddTanh();
mutableAllOpResolver.AddTranspose();
mutableAllOpResolver.AddTransposeConv();
mutableAllOpResolver.AddUnidirectionalSequenceLSTM();
mutableAllOpResolver.AddUnpack();
mutableAllOpResolver.AddVarHandle();
mutableAllOpResolver.AddWhile();
mutableAllOpResolver.AddZerosLike();
return mutableAllOpResolver;
}
} /* namespace app */
} /* namespace arm */
#endif /* INF_RUNNER_MICRO_MUTABLE_ALLOPS_RESOLVER_HPP */