![]() |
DP subclass of tf.keras.Model
.
tf_privacy.DPModel(
l2_norm_clip,
noise_multiplier,
num_microbatches=None,
use_xla=True,
*args,
**kwargs
)
This can be used as a differentially private replacement for tf.keras.Model. This class implements DP-SGD using the standard Gaussian mechanism.
When instantiating this class, you need to supply several
DP-related arguments followed by the standard arguments for
Model
.
Examples:
# Create Model instance.
model = DPModel(l2_norm_clip=1.0, noise_multiplier=0.5, use_xla=True,
<standard arguments>)
You should use your DPModel instance with a standard instance
of tf.keras.Optimizer
as the optimizer, and a standard reduced loss.
You do not need to use a differentially private optimizer.
# Use a standard (non-DP) optimizer.
optimizer = tf.keras.optimizers.SGD(learning_rate=0.01)
# Use a standard reduced loss.
loss = tf.keras.losses.MeanSquaredError()
model.compile(optimizer=optimizer, loss=loss)
model.fit(train_data, train_labels, epochs=1, batch_size=32)