A. Unique TensorFlower
5cd2439401
Remove calls to _dp_sum_query.set_batch_size in dp_optimizer.py, as no method with that name exists for objects of class QueryWithLedger.
...
PiperOrigin-RevId: 259858031
2019-07-24 18:08:35 -07:00
A. Unique TensorFlower
28fd879864
Merge pull request #57 from jvmancuso:qadapt-nest-ver
...
PiperOrigin-RevId: 259592947
2019-07-23 12:56:31 -07:00
jvmancuso
3072c86c79
find nest module based on TF version for quantile_adaptive_clip_sum_query.py
2019-07-20 10:43:48 -04:00
Nicolas Papernot
3de1fcd829
add pylint to README
...
PiperOrigin-RevId: 259029555
2019-07-19 13:41:07 -07:00
A. Unique TensorFlower
98723b9c3a
Added rdp_accountant dependency to privacy/BUILD.
...
PiperOrigin-RevId: 258657061
2019-07-17 15:44:16 -07:00
Nicolas Papernot
bb7956ed7e
fix keras typo
...
PiperOrigin-RevId: 258434656
2019-07-16 13:59:14 -07:00
Galen Andrew
973a1759aa
Remove unused global_state reference from initial_sample_state.
...
global_state is never used in any of our existing DPQueries, and we don't have any compelling use case.
PiperOrigin-RevId: 255480537
2019-06-27 14:37:49 -07:00
Nicolas Papernot
6171474465
harmonize analysis parameters with current DPSGD API
...
PiperOrigin-RevId: 255080643
2019-06-25 17:06:01 -07:00
Ilya Mironov
45bcb3a0e4
Adding privacy analysis to the Logistic Regression for MNIST tutorial.
...
PiperOrigin-RevId: 254815428
2019-06-24 12:50:08 -07:00
A. Unique TensorFlower
2b97c7c735
Logistic regression for mnist with new privacy analysis.
...
PiperOrigin-RevId: 252743967
2019-06-11 18:58:56 -07:00
Galen Andrew
d5dcfec745
Remove set_denominator functions from DPQuery and make QueryWithLedger easier to use.
...
set_denominator was added so that the batch size doesn't need to be specified before constructing the optimizer, but it breaks the DPQuery abstraction. Now the optimizer uses a GaussianSumQuery instead of GaussianAverageQuery, and normalization by batch size is done inside the optimizer.
Also instead of creating all DPQueries with a PrivacyLedger and then wrapping with QueryWithLedger, it is now sufficient to create the queries with no ledger and QueryWithLedger will construct the ledger and pass it to all inner queries.
PiperOrigin-RevId: 251462353
2019-06-04 10:14:32 -07:00
Galen Andrew
7636945566
Cast to ensure record of NoPrivacyAverageQuery is float for compatibility with sample_state.
...
PiperOrigin-RevId: 249909614
2019-05-24 15:28:39 -07:00
Steve Chien
15c07250a1
Add dtype=tf.int32 to TensorBuffer capacity and current size.
...
PiperOrigin-RevId: 249908717
2019-05-24 15:22:43 -07:00
Nicolas Papernot
a06bc6c99b
fix imports for v1 and make the versioning more explicit through LooseVersion
...
PiperOrigin-RevId: 249732562
2019-05-23 15:57:08 -07:00
Ilya Mironov
0efb23afcb
Changing initial capacity for the ledger to smaller values. (+ restoring compatibility with Python 2)
...
PiperOrigin-RevId: 249292683
2019-05-21 11:38:27 -07:00
Ilya Mironov
a94dc626b1
Specifying minimal TF version required (currently 1.13, due to dependency on the train module).
...
PiperOrigin-RevId: 248809713
2019-05-17 16:39:48 -07:00
Galen Andrew
7992006077
Add quantile_adaptive_clip_sum_query to privacy package.
...
PiperOrigin-RevId: 248617353
2019-05-16 15:56:16 -07:00
Galen Andrew
3908429796
Make DPQuery classes (almost) completely functional: the only state from the initializer that is used gets pushed into the initial_global_state.
...
PiperOrigin-RevId: 248424593
2019-05-15 16:06:37 -07:00
Steve Chien
17fefb3895
Remove tf.function annotation from quantile_adaptive_clip_sum_query.py that was causing import error.
...
PiperOrigin-RevId: 248236331
2019-05-14 16:40:55 -07:00
Galen Andrew
aaf029edad
Add quantile_adaptive_clip_sum_query which dynamically adjusts the clipping norm so a specified fraction of records per sample are clipped.
...
PiperOrigin-RevId: 248201320
2019-05-14 13:35:29 -07:00
Galen Andrew
1d1a6e087a
Extensions to DPQuery and subclasses.
...
1. Split DPQuery.accumulate_record function into preprocess_record and accumulate_preprocessed_record.
2. Add merge_sample_state function.
3. Add default implementations for some functions in DPQuery, and add base class SumAggregationDPQuery that implements some more. Only get_noised_result is still abstract.
4. Enforce that all states and parameters used as inputs and outputs to DPQuery functions are nested structures of tensors by replacing numbers with constants and Nones with empty tuples.
PiperOrigin-RevId: 247975791
2019-05-13 11:28:56 -07:00
Steve Chien
82852c0e71
Add comments explaining the relationship between ML terminology and DP terminology.
...
PiperOrigin-RevId: 246926753
2019-05-06 17:12:24 -07:00
Ilya Mironov
9cece21d92
Clean-up pass to eliminate warnings: replacing deprecated endpoints with recommended versions and annotating test sizes.
...
PiperOrigin-RevId: 246901723
2019-05-06 14:50:23 -07:00
Ilya Mironov
85280ab568
Removing max_samples and max_queries from the tutorial.
...
PiperOrigin-RevId: 246850557
2019-05-06 10:30:35 -07:00
Steve Chien
098940bf1b
Very minor formatting change.
...
PiperOrigin-RevId: 246596295
2019-05-03 16:41:38 -07:00
Steve Chien
28639ba0a8
Allow tensor buffers to automatically resize as needed.
...
PiperOrigin-RevId: 246594454
2019-05-03 16:30:02 -07:00
Steve Chien
beb86c6e18
Update PrivacyLedger and DPOptimizer to make certain arguments optional.
...
PiperOrigin-RevId: 246235646
2019-05-01 18:07:32 -07:00
Nicolas Papernot
c09ec4c22b
minor fixes to improve tf 1 and 2 compatibility
...
PiperOrigin-RevId: 246008822
2019-04-30 13:22:57 -07:00
Nicolas Papernot
febafd830d
update API calls for TF2
...
PiperOrigin-RevId: 245817981
2019-04-29 14:00:40 -07:00
A. Unique TensorFlower
ab466b156c
Check batch_size % microbatches = 0 and calculate privacy budget only when dpsgd is set.
...
PiperOrigin-RevId: 244949900
2019-04-23 16:40:33 -07:00
Ilya Mironov
a3e03f773e
Adding a paragraph to the walk-through on how to choose RDP orders. Plus deleting empty lines in rdp_accountant.py. Fixing issue #47 .
...
PiperOrigin-RevId: 244467825
2019-04-19 21:50:49 -07:00
Steve Chien
31219a5f3f
Fix DP optimizers to handle gradients that are None.
...
PiperOrigin-RevId: 244429987
2019-04-19 15:07:55 -07:00
A. Unique TensorFlower
134b7d2093
Merge pull request #45 from splatonline:ledger
...
PiperOrigin-RevId: 244412992
2019-04-19 13:33:57 -07:00
Galen Andrew
28df9cf233
Add missing deps to privacy __init__.py.
...
PiperOrigin-RevId: 244249099
2019-04-18 13:39:09 -07:00
Tim Garnsey
aeb6a94b59
added a ledger during optimizer instantiation to the language model tutorial
2019-04-17 12:52:08 +10:00
Ilya Mironov
51e29667d9
Fixing issue #44 (imports in privacy/__init__.py). Added __init__.py to the dp_query directory for Python 2 compatibility.
...
PiperOrigin-RevId: 243329997
2019-04-12 14:10:48 -07:00
Ilya Mironov
3c4409d6d6
Restoring ability to run compute_dp_sgd_privacy.py as a standalone script.
...
At present, the script has no heavy dependencies except for the rdp_accountant, which is by itself pretty light-weight. However, importing rdp_accountant triggers __init__.py in third_party/py/tensorflow_privacy/privacy, which loads TF and all of tf.privacy. The CL adds a check to the __init__.py, which controls this behavior.
PiperOrigin-RevId: 243172355
2019-04-11 17:06:53 -07:00
Galen Andrew
e8113a0365
Add DummyOptimizer to top-level imports.
...
PiperOrigin-RevId: 242715034
2019-04-09 12:14:22 -07:00
Steve Chien
3dc2b398d2
Closes #41
...
PiperOrigin-RevId: 241786994
2019-04-03 12:48:25 -07:00
Galen Andrew
9106a04e2c
Use PrivacyLedger for privacy accounting.
...
Prior to this change the PrivacyLedger is running to keep a log of private queries, but the ledger is not actually used to compute the (epsilon, delta) guarantees. This CL adds a function to compute the RDP directly from the ledger.
Note I did verify that the tutorial builds and runs with the changes and for the first few iterations prints the same epsilon values as before the change.
PiperOrigin-RevId: 241063532
2019-03-29 15:31:32 -07:00
Nicolas Papernot
8507094f2b
add walkthrough MD
...
PiperOrigin-RevId: 241016765
2019-03-29 11:24:36 -07:00
A. Unique TensorFlower
a8e54d928c
Merge pull request #37 from ShadiRahimian:patch-1
...
PiperOrigin-RevId: 240601653
2019-03-27 11:13:33 -07:00
Nicolas Papernot
01e7cac7b5
Update compute_dp_sgd_privacy.py
2019-03-27 09:22:58 -07:00
Nicolas Papernot
8db2dd6bca
Update compute_dp_sgd_privacy.py
2019-03-27 09:18:45 -07:00
Nicolas Papernot
03050adb27
adding scratch for walkthrough blog post
...
PiperOrigin-RevId: 240425310
2019-03-26 14:16:27 -07:00
Shadi Rahimian
0a0e5cb3c3
line 83 produces error
...
TypeError: can only concatenate list (not "range") to list
2019-03-26 15:28:09 +01:00
Galen Andrew
6231d0802d
Cleanup directory structure, add top-level imports and add normalized_query.
...
Moved query classes from dir optimizers into new dir dp_query. Added NormalizedQuery class for queries that divide the output of another query by a constant like GaussianAverageQuery.
PiperOrigin-RevId: 240167115
2019-03-25 10:21:04 -07:00
Nicolas Papernot
3c1e9994eb
fix vector loss issue with Keras by instantiate a loss object
...
PiperOrigin-RevId: 239483918
2019-03-20 15:08:58 -07:00
Nicolas Papernot
0ebd134d99
Closes #33
...
PiperOrigin-RevId: 239129202
2019-03-18 22:42:01 -07:00
Galen Andrew
0aad84ab3f
Move mpmath dependency to unittest target that uses it, and explicit import of mpmath functions to reduce size.
...
PiperOrigin-RevId: 239056360
2019-03-18 14:03:47 -07:00