forked from 626_privacy/tensorflow_privacy
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
105 lines
2.2 KiB
Text
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",
|
|
],
|
|
)
|