342 lines
12 KiB
Python
342 lines
12 KiB
Python
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
|
|
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
load("//tensorflow:tensorflow.bzl", "tf_cc_test")
|
|
load("//tensorflow:tensorflow.default.bzl", "get_compatible_with_portable")
|
|
load("//tensorflow/lite:special_rules.bzl", "tflite_portable_test_suite")
|
|
|
|
package(
|
|
# copybara:uncomment default_applicable_licenses = ["//tensorflow:LICENSE"],
|
|
default_visibility = [
|
|
"//visibility:public",
|
|
],
|
|
licenses = ["notice"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "reduced_precision_support",
|
|
srcs = [],
|
|
hdrs = [
|
|
"reduced_precision_support.h",
|
|
],
|
|
compatible_with = get_compatible_with_portable(),
|
|
deps = [
|
|
"//tensorflow/compiler/mlir/lite/tools/optimize:reduced_precision_metadata",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "reduced_precision_support_test",
|
|
srcs = ["reduced_precision_support_test.cc"],
|
|
tags = [
|
|
"tflite_not_portable_android",
|
|
"tflite_not_portable_ios",
|
|
],
|
|
deps = [
|
|
":reduced_precision_support",
|
|
"//tensorflow/core/platform:platform_port",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"//tensorflow/lite/testing:util",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_googletest//:gtest",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "modify_model_interface",
|
|
srcs = ["modify_model_interface.cc"],
|
|
hdrs = ["modify_model_interface.h"],
|
|
deps = [
|
|
":model_utils",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/core/c:common",
|
|
"//tensorflow/lite/kernels/internal:compatibility",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/memory",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "modify_model_interface_test",
|
|
srcs = ["modify_model_interface_test.cc"],
|
|
tags = [
|
|
"tflite_not_portable_android",
|
|
"tflite_not_portable_ios",
|
|
],
|
|
deps = [
|
|
":modify_model_interface",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_googletest//:gtest_main",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
cc_binary(
|
|
name = "modify_model_interface_main",
|
|
srcs = ["modify_model_interface_main.cc"],
|
|
deps = [
|
|
":modify_model_interface",
|
|
":quantize_model",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "quantization_wrapper_utils",
|
|
srcs = ["quantization_wrapper_utils.cc"],
|
|
hdrs = ["quantization_wrapper_utils.h"],
|
|
deps = [
|
|
":operator_property",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/core/api",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "quantization_wrapper_utils_test",
|
|
srcs = ["quantization_wrapper_utils_test.cc"],
|
|
tags = [
|
|
"tflite_not_portable_android",
|
|
"tflite_not_portable_ios",
|
|
],
|
|
deps = [
|
|
":quantization_wrapper_utils",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_googletest//:gtest",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "quantization_wrapper_utils_custom_test",
|
|
srcs = [
|
|
"quantization_wrapper_utils.cc",
|
|
"quantization_wrapper_utils.h",
|
|
"quantization_wrapper_utils_custom_test.cc",
|
|
],
|
|
defines = [
|
|
"TFLITE_CUSTOM_LSTM",
|
|
],
|
|
tags = [
|
|
"tflite_not_portable_android",
|
|
"tflite_not_portable_ios",
|
|
],
|
|
deps = [
|
|
":operator_property",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/core/api",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_googletest//:gtest_main",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "quantization_wrapper",
|
|
srcs = ["quantization_wrapper.cc"],
|
|
hdrs = ["quantization_wrapper.h"],
|
|
deps = [
|
|
":quantization_wrapper_utils",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core/api",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/tools/optimize:quantize_model",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "quantization_utils",
|
|
srcs = ["quantization_utils.cc"],
|
|
hdrs = ["quantization_utils.h"],
|
|
compatible_with = get_compatible_with_portable(),
|
|
deps = [
|
|
":model_utils",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite:minimal_logging",
|
|
"//tensorflow/lite/c:c_api_types",
|
|
"//tensorflow/lite/core/api",
|
|
"//tensorflow/lite/core/c:common",
|
|
"//tensorflow/lite/kernels/internal:cppmath",
|
|
"//tensorflow/lite/kernels/internal:quantization_util",
|
|
"//tensorflow/lite/kernels/internal:tensor_utils",
|
|
"//tensorflow/lite/kernels/internal:types",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"@eigen_archive//:eigen3",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "model_utils",
|
|
srcs = ["model_utils.cc"],
|
|
hdrs = ["model_utils.h"],
|
|
compatible_with = get_compatible_with_portable(),
|
|
deps = [
|
|
":operator_property",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/kernels/internal:tensor_utils",
|
|
"//tensorflow/lite/kernels/internal:types",
|
|
"//tensorflow/lite/schema:schema_conversion_utils",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "model_utils_test",
|
|
srcs = ["model_utils_test.cc"],
|
|
tags = [
|
|
"tflite_not_portable_ios",
|
|
],
|
|
deps = [
|
|
":model_utils",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"@com_google_googletest//:gtest_main",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
alias(
|
|
name = "operator_property",
|
|
actual = "//tensorflow/compiler/mlir/lite/tools/optimize:operator_property",
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "quantization_utils_test",
|
|
srcs = ["quantization_utils_test.cc"],
|
|
args = [
|
|
"--test_model_file=$(location //tensorflow/compiler/mlir/lite/quantization/lite:testdata/single_conv_weights_min_0_max_plus_10.bin)",
|
|
],
|
|
data = [
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/single_conv_weights_min_0_max_plus_10.bin",
|
|
],
|
|
tags = [
|
|
"tflite_not_portable_android",
|
|
"tflite_not_portable_ios",
|
|
],
|
|
deps = [
|
|
":quantization_utils",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:test_util",
|
|
"//tensorflow/core:framework_internal",
|
|
"//tensorflow/core:lib",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"//tensorflow/lite/testing:util",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_googletest//:gtest",
|
|
"@eigen_archive//:eigen3",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "quantize_model",
|
|
srcs = ["quantize_model.cc"],
|
|
hdrs = ["quantize_model.h"],
|
|
deps = [
|
|
":model_utils",
|
|
":operator_property",
|
|
":quantization_utils",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite:util",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/core/api",
|
|
"//tensorflow/lite/kernels/internal:cppmath",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"@com_google_absl//absl/strings",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "quantize_model_test",
|
|
srcs = ["quantize_model_test.cc"],
|
|
args = [
|
|
"--test_model_file=$(location //tensorflow/compiler/mlir/lite/quantization/lite:testdata/single_conv_weights_min_0_max_plus_10.bin)",
|
|
],
|
|
data = [
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/add_with_const_input.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/argmax.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/broadcast_to.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/concat.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/fc.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/fc_qat.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/gather_nd.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/lstm_calibrated.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/lstm_calibrated2.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/lstm_quantized.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/lstm_quantized2.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/maximum.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/minimum.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/mixed.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/mixed16x8.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/multi_input_add_reshape.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/pack.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/resource_vars_calibrated.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/single_avg_pool_min_minus_5_max_plus_5.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/single_conv_no_bias.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/single_conv_weights_min_0_max_plus_10.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/single_conv_weights_min_minus_127_max_plus_127.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/single_softmax_min_minus_5_max_plus_5.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/split.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/svdf_calibrated.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/svdf_quantized.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/transpose.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/unidirectional_sequence_lstm_calibrated.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/unidirectional_sequence_lstm_quantized.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/unpack.bin",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:testdata/where.bin",
|
|
],
|
|
tags = [
|
|
"tflite_not_portable_android",
|
|
"tflite_not_portable_ios",
|
|
],
|
|
deps = [
|
|
":quantize_model",
|
|
"//tensorflow/compiler/mlir/lite/quantization/lite:test_util",
|
|
"//tensorflow/core:framework_internal",
|
|
"//tensorflow/core:lib",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"//tensorflow/lite/schema:schema_utils",
|
|
"//tensorflow/lite/testing:util",
|
|
"@com_google_googletest//:gtest",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
tflite_portable_test_suite()
|