Internal change

PiperOrigin-RevId: 293480979
Change-Id: I6f6f0be8d502c375db5e1a122abd18231c002f87
This commit is contained in:
Nupur Garg 2020-02-05 16:37:23 -08:00 committed by TensorFlower Gardener
parent 548fcc85ff
commit c04624500d
4 changed files with 46 additions and 16 deletions

View File

@ -38,8 +38,14 @@ config_setting(
) )
config_setting( config_setting(
name = "tflite_experimental_runtime", name = "tflite_experimental_runtime_eager",
values = {"define": "tflite_experimental_runtime=true"}, values = {"define": "tflite_experimental_runtime=eager"},
visibility = ["//visibility:public"],
)
config_setting(
name = "tflite_experimental_runtime_non_eager",
values = {"define": "tflite_experimental_runtime=non-eager"},
visibility = ["//visibility:public"], visibility = ["//visibility:public"],
) )

View File

@ -702,17 +702,22 @@ def gen_model_coverage_test(src, model_name, data, failure_type, tags, size = "m
] + flex_dep(target_op_sets), ] + flex_dep(target_op_sets),
) )
def if_tflite_experimental_runtime(if_true, if_false = []): def if_tflite_experimental_runtime(if_eager, if_non_eager, if_none = []):
return select({ return select({
"//tensorflow/lite:tflite_experimental_runtime": if_true, "//tensorflow/lite:tflite_experimental_runtime_eager": if_eager,
"//conditions:default": if_false, "//tensorflow/lite:tflite_experimental_runtime_non_eager": if_non_eager,
"//conditions:default": if_none,
}) })
def tflite_experimental_runtime_linkopts(if_true = [], if_false = []): def tflite_experimental_runtime_linkopts(if_eager = [], if_non_eager = [], if_none = []):
return if_tflite_experimental_runtime( return if_tflite_experimental_runtime(
if_true = [ if_eager = [
# "//tensorflow/lite/experimental/tf_runtime:eager_interpreter",
# "//tensorflow/lite/experimental/tf_runtime:eager_model",
] + if_eager,
if_non_eager = [
# "//tensorflow/lite/experimental/tf_runtime:interpreter", # "//tensorflow/lite/experimental/tf_runtime:interpreter",
# "//tensorflow/lite/experimental/tf_runtime:model", # "//tensorflow/lite/experimental/tf_runtime:model",
] + if_true, ] + if_non_eager,
if_false = [] + if_false, if_none = [] + if_none,
) )

View File

@ -9,8 +9,9 @@ cc_library(
name = "tflite_api_dispatcher", name = "tflite_api_dispatcher",
hdrs = ["tflite_api_dispatcher.h"], hdrs = ["tflite_api_dispatcher.h"],
defines = if_tflite_experimental_runtime( defines = if_tflite_experimental_runtime(
if_false = [], if_eager = ["TFLITE_EXPERIMENTAL_RUNTIME_EAGER"],
if_true = ["TFLITE_EXPERIMENTAL_RUNTIME"], if_non_eager = ["TFLITE_EXPERIMENTAL_RUNTIME_NON_EAGER"],
if_none = [],
), ),
deps = [ deps = [
"//tensorflow/lite:framework", "//tensorflow/lite:framework",
@ -24,7 +25,7 @@ cc_library(
":tflite_api_dispatcher", ":tflite_api_dispatcher",
"//tensorflow/lite:framework", "//tensorflow/lite:framework",
] + tflite_experimental_runtime_linkopts( ] + tflite_experimental_runtime_linkopts(
if_true = [ if_non_eager = [
# "//tensorflow/lite/experimental/tf_runtime/tfrt_kernels:tfrt_tflite_interpreter_alwayslink", # "//tensorflow/lite/experimental/tf_runtime/tfrt_kernels:tfrt_tflite_interpreter_alwayslink",
# "//third_party/tf_runtime:basic_kernels_alwayslink", # "//third_party/tf_runtime:basic_kernels_alwayslink",
], ],

View File

@ -18,12 +18,25 @@ limitations under the License.
#ifndef TENSORFLOW_LITE_EXPERIMENTAL_TFLITE_API_DISPATCHER_TFLITE_API_DISPATCHER_H_ #ifndef TENSORFLOW_LITE_EXPERIMENTAL_TFLITE_API_DISPATCHER_TFLITE_API_DISPATCHER_H_
#define TENSORFLOW_LITE_EXPERIMENTAL_TFLITE_API_DISPATCHER_TFLITE_API_DISPATCHER_H_ #define TENSORFLOW_LITE_EXPERIMENTAL_TFLITE_API_DISPATCHER_TFLITE_API_DISPATCHER_H_
#ifndef TFLITE_EXPERIMENTAL_RUNTIME #ifndef TFLITE_EXPERIMENTAL_RUNTIME_EAGER
#define TFLITE_EXPERIMENTAL_RUNTIME (0) #define TFLITE_EXPERIMENTAL_RUNTIME_EAGER (0)
#endif
#ifndef TFLITE_EXPERIMENTAL_RUNTIME_NON_EAGER
#define TFLITE_EXPERIMENTAL_RUNTIME_NON_EAGER (0)
#endif
#if TFLITE_EXPERIMENTAL_RUNTIME_EAGER && TFLITE_EXPERIMENTAL_RUNTIME_NON_EAGER
#error \
"TFLITE_EXPERIMENTAL_RUNTIME_EAGER and " \
"TFLITE_EXPERIMENTAL_RUNTIME_NON_EAGER should not both be true."
#endif #endif
// Import the relevant interpreter and model files. // Import the relevant interpreter and model files.
#if TFLITE_EXPERIMENTAL_RUNTIME #if TFLITE_EXPERIMENTAL_RUNTIME_EAGER
#include "tensorflow/lite/experimental/tf_runtime/lib/eager_model.h"
#include "tensorflow/lite/experimental/tf_runtime/public/eager_interpreter.h"
#elif TFLITE_EXPERIMENTAL_RUNTIME_NON_EAGER
#include "tensorflow/lite/experimental/tf_runtime/lib/model.h" #include "tensorflow/lite/experimental/tf_runtime/lib/model.h"
#include "tensorflow/lite/experimental/tf_runtime/public/interpreter.h" #include "tensorflow/lite/experimental/tf_runtime/public/interpreter.h"
#else #else
@ -34,7 +47,12 @@ limitations under the License.
namespace tflite_api_dispatcher { namespace tflite_api_dispatcher {
// Use the correct interpreter. // Use the correct interpreter.
#if TFLITE_EXPERIMENTAL_RUNTIME #if TFLITE_EXPERIMENTAL_RUNTIME_EAGER
using Interpreter = tflrt::EagerInterpreter;
using InterpreterBuilder = tflrt::EagerTfLiteInterpreterBuilderAPI;
using TfLiteModel = tflite::FlatBufferModel;
using TfLiteVerifier = tflite::TfLiteVerifier;
#elif TFLITE_EXPERIMENTAL_RUNTIME_NON_EAGER
using Interpreter = tflrt::TfLiteInterpreterAPI; using Interpreter = tflrt::TfLiteInterpreterAPI;
using InterpreterBuilder = tflrt::TfLiteInterpreterBuilderAPI; using InterpreterBuilder = tflrt::TfLiteInterpreterBuilderAPI;
using TfLiteModel = tflrt::BEFModel; using TfLiteModel = tflrt::BEFModel;