blob: 944ed4a7b73e065eed2f77a6302f362d09a632de [file] [log] [blame]
/*
* SPDX-FileCopyrightText: Copyright 2021-2022 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 TENSORFLOW_LITE_MICRO_LOCAL_HPP
#define TENSORFLOW_LITE_MICRO_LOCAL_HPP
/* We include all our TensorFlow Lite Micro headers here */
/**
* TensorFlow Lite Micro sources can generate a lot of warnings from the usage
* of a single macro (TF_LITE_REMOVE_VIRTUAL_DELETE). Suppress the known ones
* here to prevent them from masking warnings that might be generated by our
* application sources.
*/
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-parameter"
#include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
#include "tensorflow/lite/micro/micro_interpreter.h"
#include "tensorflow/lite/micro/all_ops_resolver.h"
#pragma clang diagnostic pop
#elif defined(__GNUC__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
#include "tensorflow/lite/micro/micro_interpreter.h"
#include "tensorflow/lite/micro/all_ops_resolver.h"
#pragma GCC diagnostic pop
#else
#include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
#include "tensorflow/lite/micro/micro_interpreter.h"
#include "tensorflow/lite/micro/all_ops_resolver.h"
#endif
#include "tensorflow/lite/c/common.h"
#include "tensorflow/lite/micro/kernels/micro_ops.h"
#include "tensorflow/lite/micro/tflite_bridge/op_resolver_bridge.h"
#include "tensorflow/lite/schema/schema_generated.h"
#include "tensorflow/lite/schema/schema_utils.h"
#if defined (TESTS)
#include "tensorflow/lite/micro/test_helpers.h"
#endif /* defined (TESTS) */
namespace arm {
namespace app {
/** Struct for quantization parameters. */
struct QuantParams {
float scale = 1.0;
int offset = 0;
};
/**
* @brief Gets the quantization parameters from a tensor
* @param[in] tensor pointer to the tensor.
* @return QuantParams object.
*/
QuantParams GetTensorQuantParams(TfLiteTensor* tensor);
} /* namespace app */
} /* namespace arm */
/**
* @brief Prints the tensor flow version in use to stdout.
*/
void PrintTensorFlowVersion();
/**
* @brief String logging functionality expected to be defined
* by TensorFlow Lite Micro's error reporter.
* @param[in] s Pointer to the string.
*/
extern "C" void DebugLog(const char* s) __attribute__((__weak__));
#endif /* TENSORFLOW_LITE_MICRO_LOCAL_HPP */