159 lines
5.1 KiB
Python
159 lines
5.1 KiB
Python
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
load("//tensorflow:pytype.default.bzl", "pytype_strict_library")
|
|
load("//tensorflow:tensorflow.bzl", "py_test")
|
|
load("//tensorflow:tensorflow.default.bzl", "get_compatible_with_portable", "if_portable", "pybind_extension")
|
|
|
|
package(
|
|
# copybara:uncomment default_applicable_licenses = ["//tensorflow:LICENSE"],
|
|
default_visibility = ["//visibility:public"],
|
|
licenses = ["notice"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "metrics_wrapper_lib",
|
|
srcs = if_portable(
|
|
if_false = ["wrapper/metrics_wrapper_nonportable.cc"],
|
|
if_true = ["wrapper/metrics_wrapper_portable.cc"],
|
|
),
|
|
hdrs = ["wrapper/metrics_wrapper.h"],
|
|
compatible_with = get_compatible_with_portable(),
|
|
visibility = ["//visibility:private"],
|
|
deps = [
|
|
"@xla//third_party/python_runtime:headers",
|
|
] + if_portable(
|
|
if_false = [
|
|
"//learning/brain/google/monitoring:metrics_exporter",
|
|
],
|
|
if_true = [],
|
|
),
|
|
)
|
|
|
|
pybind_extension(
|
|
name = "_pywrap_tensorflow_lite_metrics_wrapper",
|
|
srcs = ["wrapper/metrics_wrapper_pybind11.cc"],
|
|
hdrs = ["wrapper/metrics_wrapper.h"],
|
|
common_lib_packages = [
|
|
"litert/python",
|
|
"tensorflow/lite/python",
|
|
],
|
|
compatible_with = get_compatible_with_portable(),
|
|
enable_stub_generation = True,
|
|
pytype_srcs = [
|
|
"_pywrap_tensorflow_lite_metrics_wrapper.pyi",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
wrap_py_init = True,
|
|
deps = [
|
|
":metrics_wrapper_lib",
|
|
"//tensorflow/python/lib/core:pybind11_lib",
|
|
"@com_google_protobuf//:protobuf",
|
|
"@pybind11",
|
|
"@xla//third_party/python_runtime:headers",
|
|
],
|
|
)
|
|
|
|
pytype_strict_library(
|
|
name = "metrics_wrapper",
|
|
srcs = ["wrapper/metrics_wrapper.py"],
|
|
deps = [
|
|
":_pywrap_tensorflow_lite_metrics_wrapper",
|
|
"//tensorflow/compiler/mlir/lite/metrics:converter_error_data_proto_py",
|
|
"//tensorflow/compiler/mlir/lite/python:wrap_converter",
|
|
],
|
|
)
|
|
|
|
py_test(
|
|
name = "metrics_wrapper_test",
|
|
srcs = ["wrapper/metrics_wrapper_test.py"],
|
|
strict_deps = True,
|
|
deps = [
|
|
":metrics_wrapper",
|
|
#internal proto upb dep
|
|
"//tensorflow:tensorflow_py",
|
|
"//tensorflow/lite/python:convert",
|
|
"//tensorflow/lite/python:lite",
|
|
"//tensorflow/python/framework:test_lib",
|
|
"//tensorflow/python/platform:client_testlib",
|
|
],
|
|
)
|
|
|
|
pytype_strict_library(
|
|
name = "metrics_interface",
|
|
srcs = ["metrics_interface.py"],
|
|
compatible_with = get_compatible_with_portable(),
|
|
visibility = ["//tensorflow/lite/tools/pip_package:__subpackages__"],
|
|
)
|
|
|
|
genrule(
|
|
name = "metrics_py_gen",
|
|
srcs = if_portable(
|
|
if_false = ["metrics_nonportable.py"],
|
|
if_true = ["metrics_portable.py"],
|
|
),
|
|
outs = ["metrics.py"],
|
|
cmd = (
|
|
"cat $(SRCS) > $(OUTS)"
|
|
),
|
|
compatible_with = get_compatible_with_portable(),
|
|
)
|
|
|
|
pytype_strict_library(
|
|
name = "metrics",
|
|
srcs = ["metrics.py"],
|
|
compatible_with = get_compatible_with_portable(),
|
|
visibility = ["//tensorflow/lite:__subpackages__"],
|
|
deps = if_portable(
|
|
if_false = [
|
|
"//tensorflow/compiler/mlir/lite/metrics:converter_error_data_proto_py",
|
|
":metrics_wrapper",
|
|
"//tensorflow/python/eager:monitoring",
|
|
],
|
|
if_true = [],
|
|
) + [":metrics_interface"],
|
|
)
|
|
|
|
py_test(
|
|
name = "metrics_test",
|
|
srcs = if_portable(
|
|
if_false = ["metrics_nonportable_test.py"],
|
|
if_true = ["metrics_portable_test.py"],
|
|
),
|
|
data = [
|
|
"//tensorflow/lite/python/testdata/control_flow_v1_saved_model:saved_model.pb",
|
|
],
|
|
main = if_portable(
|
|
if_false = "metrics_nonportable_test.py",
|
|
if_true = "metrics_portable_test.py",
|
|
),
|
|
strict_deps = True,
|
|
tags = ["notap"], # TODO(b/373657707): Remove once we debug the failure.
|
|
deps = [
|
|
":metrics",
|
|
"@absl_py//absl/testing:parameterized",
|
|
#internal proto upb dep
|
|
"//third_party/py/numpy",
|
|
"//tensorflow:tensorflow_py",
|
|
"//tensorflow/compiler/mlir/lite/metrics:converter_error_data_proto_py",
|
|
"//tensorflow/core:protos_all_py",
|
|
"//tensorflow/lite/python:convert",
|
|
"//tensorflow/lite/python:lite",
|
|
"//tensorflow/python/client:session",
|
|
"//tensorflow/python/eager:context",
|
|
"//tensorflow/python/eager:monitoring",
|
|
"//tensorflow/python/framework:convert_to_constants",
|
|
"//tensorflow/python/framework:dtypes",
|
|
"//tensorflow/python/framework:importer",
|
|
"//tensorflow/python/framework:ops",
|
|
"//tensorflow/python/framework:test_lib",
|
|
"//tensorflow/python/ops:array_ops",
|
|
"//tensorflow/python/ops:array_ops_stack",
|
|
"//tensorflow/python/ops:math_ops",
|
|
"//tensorflow/python/ops:string_ops",
|
|
"//tensorflow/python/ops/ragged:ragged_tensor",
|
|
"//tensorflow/python/platform:client_testlib",
|
|
"//tensorflow/python/platform:resource_loader",
|
|
"//tensorflow/python/saved_model",
|
|
"//tensorflow/python/trackable:autotrackable",
|
|
],
|
|
)
|