tensorflow_privacy/tensorflow_privacy/privacy/optimizers/BUILD
A. Unique TensorFlower cff47686f6 Changes DPOptimizerClass to generically accept and use any dp_sum_query.
This enables creation of generic DPOptimizers by user's passing queries. The most common Gaussian query is automatically performed for convenience and backwards compatibility.

Byproducts of this update:
-ensures consistent implementations between the internal (and legacy) `get_gradients` and newer `_compute_gradients` for all queries.
-refactors for python readability.

PiperOrigin-RevId: 470883774
2022-08-29 20:22:40 -07:00

105 lines
2.2 KiB
Text

load("@rules_python//python:defs.bzl", "py_library", "py_test")
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
py_library(
name = "optimizers",
srcs = ["__init__.py"],
)
py_library(
name = "dp_optimizer",
srcs = [
"dp_optimizer.py",
],
srcs_version = "PY3",
deps = ["//tensorflow_privacy/privacy/dp_query:gaussian_query"],
)
py_library(
name = "dp_optimizer_factory",
srcs = [
"dp_optimizer_keras.py",
],
srcs_version = "PY3",
deps = [
"//tensorflow_privacy/privacy/dp_query",
"//tensorflow_privacy/privacy/dp_query:gaussian_query",
],
)
py_library(
name = "dp_optimizer_vectorized",
srcs = [
"dp_optimizer_vectorized.py",
],
srcs_version = "PY3",
)
py_library(
name = "dp_optimizer_keras",
srcs = [
"dp_optimizer_keras.py",
],
srcs_version = "PY3",
deps = [
"//tensorflow_privacy/privacy/dp_query",
"//tensorflow_privacy/privacy/dp_query:gaussian_query",
],
)
py_library(
name = "dp_optimizer_keras_vectorized",
srcs = [
"dp_optimizer_keras_vectorized.py",
],
srcs_version = "PY3",
deps = ["//tensorflow_privacy/privacy/dp_query:gaussian_query"],
)
py_test(
name = "dp_optimizer_test",
timeout = "long",
srcs = ["dp_optimizer_test.py"],
python_version = "PY3",
srcs_version = "PY3",
deps = [
":dp_optimizer",
"//tensorflow_privacy/privacy/dp_query:gaussian_query",
],
)
py_test(
name = "dp_optimizer_vectorized_test",
timeout = "long",
srcs = ["dp_optimizer_vectorized_test.py"],
python_version = "PY3",
srcs_version = "PY3",
deps = [":dp_optimizer_vectorized"],
)
py_test(
name = "dp_optimizer_eager_test",
timeout = "long",
srcs = ["dp_optimizer_eager_test.py"],
python_version = "PY3",
srcs_version = "PY3",
deps = [
":dp_optimizer",
"//tensorflow_privacy/privacy/dp_query:gaussian_query",
],
)
py_test(
name = "dp_optimizer_keras_test",
timeout = "long",
srcs = ["dp_optimizer_keras_test.py"],
python_version = "PY3",
srcs_version = "PY3",
deps = [
":dp_optimizer_keras",
":dp_optimizer_keras_vectorized",
],
)