diff --git a/source/application/api/use_case/inference_runner/include/MicroMutableAllOpsResolver.hpp b/source/application/api/use_case/inference_runner/include/MicroMutableAllOpsResolver.hpp
new file mode 100644
index 0000000..df55a83
--- /dev/null
+++ b/source/application/api/use_case/inference_runner/include/MicroMutableAllOpsResolver.hpp
@@ -0,0 +1,134 @@
+/*
+ * 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 {
+
+    inline tflite::MicroMutableOpResolver<kNumberOperators> get_resolver() {
+        tflite::MicroMutableOpResolver<kNumberOperators> micro_op_resolver;
+
+        micro_op_resolver.AddAbs();
+        micro_op_resolver.AddAdd();
+        micro_op_resolver.AddAddN();
+        micro_op_resolver.AddArgMax();
+        micro_op_resolver.AddArgMin();
+        micro_op_resolver.AddAssignVariable();
+        micro_op_resolver.AddAveragePool2D();
+        micro_op_resolver.AddBatchToSpaceNd();
+        micro_op_resolver.AddBroadcastArgs();
+        micro_op_resolver.AddBroadcastTo();
+        micro_op_resolver.AddCallOnce();
+        micro_op_resolver.AddCast();
+        micro_op_resolver.AddCeil();
+        micro_op_resolver.AddCircularBuffer();
+        micro_op_resolver.AddConcatenation();
+        micro_op_resolver.AddConv2D();
+        micro_op_resolver.AddCos();
+        micro_op_resolver.AddCumSum();
+        micro_op_resolver.AddDepthToSpace();
+        micro_op_resolver.AddDepthwiseConv2D();
+        micro_op_resolver.AddDequantize();
+        micro_op_resolver.AddDetectionPostprocess();
+        micro_op_resolver.AddDiv();
+        micro_op_resolver.AddElu();
+        micro_op_resolver.AddEqual();
+        micro_op_resolver.AddEthosU();
+        micro_op_resolver.AddExp();
+        micro_op_resolver.AddExpandDims();
+        micro_op_resolver.AddFill();
+        micro_op_resolver.AddFloor();
+        micro_op_resolver.AddFloorDiv();
+        micro_op_resolver.AddFloorMod();
+        micro_op_resolver.AddFullyConnected();
+        micro_op_resolver.AddGather();
+        micro_op_resolver.AddGatherNd();
+        micro_op_resolver.AddGreater();
+        micro_op_resolver.AddGreaterEqual();
+        micro_op_resolver.AddHardSwish();
+        micro_op_resolver.AddIf();
+        micro_op_resolver.AddL2Normalization();
+        micro_op_resolver.AddL2Pool2D();
+        micro_op_resolver.AddLeakyRelu();
+        micro_op_resolver.AddLess();
+        micro_op_resolver.AddLessEqual();
+        micro_op_resolver.AddLog();
+        micro_op_resolver.AddLogicalAnd();
+        micro_op_resolver.AddLogicalNot();
+        micro_op_resolver.AddLogicalOr();
+        micro_op_resolver.AddLogistic();
+        micro_op_resolver.AddLogSoftmax();
+        micro_op_resolver.AddMaxPool2D();
+        micro_op_resolver.AddMaximum();
+        micro_op_resolver.AddMean();
+        micro_op_resolver.AddMinimum();
+        micro_op_resolver.AddMirrorPad();
+        micro_op_resolver.AddMul();
+        micro_op_resolver.AddNeg();
+        micro_op_resolver.AddNotEqual();
+        micro_op_resolver.AddPack();
+        micro_op_resolver.AddPad();
+        micro_op_resolver.AddPadV2();
+        micro_op_resolver.AddPrelu();
+        micro_op_resolver.AddQuantize();
+        micro_op_resolver.AddReadVariable();
+        micro_op_resolver.AddReduceMax();
+        micro_op_resolver.AddRelu();
+        micro_op_resolver.AddRelu6();
+        micro_op_resolver.AddReshape();
+        micro_op_resolver.AddResizeBilinear();
+        micro_op_resolver.AddResizeNearestNeighbor();
+        micro_op_resolver.AddRound();
+        micro_op_resolver.AddRsqrt();
+        micro_op_resolver.AddSelectV2();
+        micro_op_resolver.AddShape();
+        micro_op_resolver.AddSin();
+        micro_op_resolver.AddSlice();
+        micro_op_resolver.AddSoftmax();
+        micro_op_resolver.AddSpaceToBatchNd();
+        micro_op_resolver.AddSpaceToDepth();
+        micro_op_resolver.AddSplit();
+        micro_op_resolver.AddSplitV();
+        micro_op_resolver.AddSqrt();
+        micro_op_resolver.AddSquare();
+        micro_op_resolver.AddSquaredDifference();
+        micro_op_resolver.AddSqueeze();
+        micro_op_resolver.AddStridedSlice();
+        micro_op_resolver.AddSub();
+        micro_op_resolver.AddSum();
+        micro_op_resolver.AddSvdf();
+        micro_op_resolver.AddTanh();
+        micro_op_resolver.AddTranspose();
+        micro_op_resolver.AddTransposeConv();
+        micro_op_resolver.AddUnidirectionalSequenceLSTM();
+        micro_op_resolver.AddUnpack();
+        micro_op_resolver.AddVarHandle();
+        micro_op_resolver.AddWhile();
+        micro_op_resolver.AddZerosLike();
+
+        return micro_op_resolver;
+    }
+
+} /* namespace app */
+} /* namespace arm */
+
+#endif /* INF_RUNNER_MICRO_MUTABLE_ALLOPS_RESOLVER_HPP */
diff --git a/source/application/api/use_case/inference_runner/include/TestModel.hpp b/source/application/api/use_case/inference_runner/include/TestModel.hpp
index 80318e6..bc6a0fb 100644
--- a/source/application/api/use_case/inference_runner/include/TestModel.hpp
+++ b/source/application/api/use_case/inference_runner/include/TestModel.hpp
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: Copyright 2021 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ * SPDX-FileCopyrightText: Copyright 2021, 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");
@@ -18,6 +18,7 @@
 #define INF_RUNNER_TESTMODEL_HPP
 
 #include "Model.hpp"
+#include "MicroMutableAllOpsResolver.hpp"
 
 namespace arm {
 namespace app {
@@ -26,7 +27,7 @@
 
     protected:
         /** @brief   Gets the reference to op resolver interface class. */
-        const tflite::AllOpsResolver& GetOpResolver() override;
+        const tflite::MicroMutableOpResolver<kNumberOperators>& GetOpResolver() override;
 
         /** @brief   Adds operations to the op resolver instance, not needed as using AllOpsResolver. */
         bool EnlistOperations() override {return false;}
@@ -34,7 +35,7 @@
     private:
 
         /* No need to define individual ops at the cost of extra memory. */
-        tflite::AllOpsResolver m_opResolver;
+        tflite::MicroMutableOpResolver<kNumberOperators> m_opResolver;
     };
 
 } /* namespace app */
diff --git a/source/application/api/use_case/inference_runner/src/TestModel.cc b/source/application/api/use_case/inference_runner/src/TestModel.cc
index 660c3e6..c69a98d 100644
--- a/source/application/api/use_case/inference_runner/src/TestModel.cc
+++ b/source/application/api/use_case/inference_runner/src/TestModel.cc
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: Copyright 2021 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ * SPDX-FileCopyrightText: Copyright 2021, 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");
@@ -17,7 +17,7 @@
 #include "TestModel.hpp"
 #include "log_macros.h"
 
-const tflite::AllOpsResolver& arm::app::TestModel::GetOpResolver()
+const tflite::MicroMutableOpResolver<kNumberOperators>& arm::app::TestModel::GetOpResolver()
 {
     return this->m_opResolver;
 }
