tensorflow_privacy/research/pate_2018/ICLR2018
Michael Reneer 69d84d1892 Add TensorFlow Privacy BUILD and WORKSPACE files.
PiperOrigin-RevId: 429141704
2022-02-16 23:30:06 +00:00
..
BUILD Add TensorFlow Privacy BUILD and WORKSPACE files. 2022-02-16 23:30:06 +00:00
download.py Add missing licenses. 2019-01-14 16:02:35 -08:00
generate_figures.sh Add missing licenses. 2019-01-14 16:02:35 -08:00
generate_table.sh Add missing licenses. 2019-01-14 16:02:35 -08:00
generate_table_data_independent.sh Add missing licenses. 2019-01-14 16:02:35 -08:00
plot_ls_q.py Add missing licenses. 2019-01-14 16:02:35 -08:00
plot_partition.py Add missing licenses. 2019-01-14 16:02:35 -08:00
plots_for_slides.py Add missing licenses. 2019-01-14 16:02:35 -08:00
rdp_bucketized.py reorder imports 2019-03-08 09:47:15 -08:00
rdp_cumulative.py Add missing licenses. 2019-01-14 16:02:35 -08:00
README.md Add missing licenses. 2019-01-14 16:02:35 -08:00
smooth_sensitivity_table.py Add missing licenses. 2019-01-14 16:02:35 -08:00
utility_queries_answered.py Add missing licenses. 2019-01-14 16:02:35 -08:00

Scripts in support of the paper "Scalable Private Learning with PATE" by Nicolas Papernot, Shuang Song, Ilya Mironov, Ananth Raghunathan, Kunal Talwar, Ulfar Erlingsson (ICLR 2018, https://arxiv.org/abs/1802.08908).

Requirements

  • Python, version ≥ 2.7
  • absl (see here, or just type pip install absl-py)
  • matplotlib
  • numpy
  • scipy
  • sympy (for smooth sensitivity analysis)
  • write access to the current directory (otherwise, output directories in download.py and *.sh scripts must be changed)

Reproducing Figures 1 and 5, and Table 2

Before running any of the analysis scripts, create the data/ directory and download votes files by running
$ python download.py

To generate Figures 1 and 5 run
$ sh generate_figures.sh
The output is written to the figures/ directory.

For Table 2 run (may take several hours)
$ sh generate_table.sh
The output is written to the console.

For data-independent bounds (for comparison with Table 2), run
$ sh generate_table_data_independent.sh
The output is written to the console.

Files in this directory

  • generate_figures.sh — Master script for generating Figures 1 and 5.

  • generate_table.sh — Master script for generating Table 2.

  • generate_table_data_independent.sh — Master script for computing data-independent bounds.

  • rdp_bucketized.py — Script for producing Figure 1 (right) and Figure 5 (right).

  • rdp_cumulative.py — Script for producing Figure 1 (middle) and Figure 5 (left).

  • smooth_sensitivity_table.py — Script for generating Table 2.

  • utility_queries_answered — Script for producing Figure 1 (left).

  • plot_partition.py — Script for producing partition.pdf, a detailed breakdown of privacy costs for Confident-GNMax with smooth sensitivity analysis (takes ~50 hours).

  • plots_for_slides.py — Script for producing several plots for the slide deck.

  • download.py — Utility script for populating the data/ directory.

  • plot_ls_q.py is not used.

All Python files take flags. Run script_name.py --help for help on flags.