Daniel Konegen / MNIST_example

Dependencies:   mbed-os

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers op_resolver.h Source File

op_resolver.h

00001 /* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
00002 
00003 Licensed under the Apache License, Version 2.0 (the "License");
00004 you may not use this file except in compliance with the License.
00005 You may obtain a copy of the License at
00006 
00007     http://www.apache.org/licenses/LICENSE-2.0
00008 
00009 Unless required by applicable law or agreed to in writing, software
00010 distributed under the License is distributed on an "AS IS" BASIS,
00011 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00012 See the License for the specific language governing permissions and
00013 limitations under the License.
00014 ==============================================================================*/
00015 #ifndef TENSORFLOW_LITE_CORE_API_OP_RESOLVER_H_
00016 #define TENSORFLOW_LITE_CORE_API_OP_RESOLVER_H_
00017 
00018 #include "tensorflow/lite/c/c_api_internal.h"
00019 #include "tensorflow/lite/core/api/error_reporter.h"
00020 #include "tensorflow/lite/schema/schema_generated.h"
00021 
00022 namespace tflite {
00023 
00024 /// Abstract interface that returns TfLiteRegistrations given op codes or custom
00025 /// op names. This is the mechanism that ops being referenced in the flatbuffer
00026 /// model are mapped to executable function pointers (TfLiteRegistrations).
00027 class OpResolver {
00028  public:
00029   /// Finds the op registration for a builtin operator by enum code.
00030   virtual const TfLiteRegistration* FindOp(tflite::BuiltinOperator op,
00031                                            int version) const = 0;
00032   /// Finds the op registration of a custom operator by op name.
00033   virtual const TfLiteRegistration* FindOp(const char* op,
00034                                            int version) const = 0;
00035   virtual ~OpResolver() {}
00036 };
00037 
00038 // Handles the logic for converting between an OperatorCode structure extracted
00039 // from a flatbuffer and information about a registered operator
00040 // implementation.
00041 TfLiteStatus GetRegistrationFromOpCode(const OperatorCode* opcode,
00042                                        const OpResolver& op_resolver,
00043                                        ErrorReporter* error_reporter,
00044                                        const TfLiteRegistration** registration);
00045 
00046 }  // namespace tflite
00047 
00048 #endif  // TENSORFLOW_LITE_CORE_API_OP_RESOLVER_H_