Browse Source

Rectify the api description of Diff-privacy

tags/v1.3.0
jin-xiulang 4 years ago
parent
commit
d9a36e8d1b
3 changed files with 14 additions and 12 deletions
  1. +11
    -11
      mindarmour/privacy/diff_privacy/mechanisms/mechanisms.py
  2. +1
    -1
      mindarmour/privacy/diff_privacy/monitor/monitor.py
  3. +2
    -0
      mindarmour/privacy/diff_privacy/train/model.py

+ 11
- 11
mindarmour/privacy/diff_privacy/mechanisms/mechanisms.py View File

@@ -66,9 +66,9 @@ class ClipMechanismsFactory:
>>> decay_policy = 'Linear'
>>> beta = Tensor(0.5, mstype.float32)
>>> norm_bound = Tensor(1.0, mstype.float32)
>>> beta_stddev = 0.1
>>> learning_rate = 0.1
>>> target_unclipped_quantile = 0.3
>>> beta_stddev = 0.01
>>> learning_rate = 0.001
>>> target_unclipped_quantile = 0.9
>>> clip_mechanism = ClipMechanismsFactory()
>>> ada_clip = clip_mechanism.create('Gaussian',
>>> decay_policy=decay_policy,
@@ -107,7 +107,7 @@ class NoiseMechanismsFactory:
random number. IF seed!=0 random normal will generate values using
given seed. Default: 0.
noise_decay_rate(float): Hyper parameter for controlling the noise decay. Default: 6e-6.
decay_policy(str): Mechanisms parameters update policy. Default: None, no
decay_policy(str): Mechanisms parameters update policy. If decay_policy is None, no
parameters need update. Default: None.

Raises:
@@ -118,7 +118,7 @@ class NoiseMechanismsFactory:

Examples:
>>> norm_bound = 1.0
>>> initial_noise_multiplier = 0.01
>>> initial_noise_multiplier = 1.0
>>> network = LeNet5()
>>> batch_size = 32
>>> batches = 128
@@ -129,7 +129,7 @@ class NoiseMechanismsFactory:
>>> initial_noise_multiplier=initial_noise_multiplier)
>>> clip_mech = ClipMechanismsFactory().create('Gaussian',
>>> decay_policy='Linear',
>>> learning_rate=0.01,
>>> learning_rate=0.001,
>>> target_unclipped_quantile=0.9,
>>> fraction_stddev=0.01)
>>> net_opt = nn.Momentum(network.trainable_params(), learning_rate=0.1,
@@ -193,8 +193,8 @@ class NoiseGaussianRandom(_Mechanisms):

Examples:
>>> gradients = Tensor([0.2, 0.9], mstype.float32)
>>> norm_bound = 0.5
>>> initial_noise_multiplier = 1.5
>>> norm_bound = 0.1
>>> initial_noise_multiplier = 1.0
>>> seed = 0
>>> decay_policy = None
>>> net = NoiseGaussianRandom(norm_bound, initial_noise_multiplier, seed, decay_policy)
@@ -261,9 +261,9 @@ class NoiseAdaGaussianRandom(NoiseGaussianRandom):
Examples:
>>> gradients = Tensor([0.2, 0.9], mstype.float32)
>>> norm_bound = 1.0
>>> initial_noise_multiplier = 1.5
>>> initial_noise_multiplier = 1.0
>>> seed = 0
>>> noise_decay_rate = 6e-4
>>> noise_decay_rate = 6e-6
>>> decay_policy = "Exp"
>>> net = NoiseAdaGaussianRandom(norm_bound, initial_noise_multiplier, seed, noise_decay_rate, decay_policy)
>>> res = net(gradients)
@@ -365,7 +365,7 @@ class AdaClippingWithGaussianRandom(Cell):

Args:
decay_policy(str): Decay policy of adaptive clipping, decay_policy must
be in ['Linear', 'Geometric']. Default: Linear.
be in ['Linear', 'Geometric']. Default: 'Linear'.
learning_rate(float): Learning rate of update norm clip. Default: 0.001.
target_unclipped_quantile(float): Target quantile of norm clip. Default: 0.9.
fraction_stddev(float): The stddev of Gaussian normal which used in


+ 1
- 1
mindarmour/privacy/diff_privacy/monitor/monitor.py View File

@@ -45,7 +45,7 @@ class PrivacyMonitorFactory:
privacy theory; If policy is 'zcdp', the monitor will compute
the privacy budget of DP training based on zero-concentrated
differential privacy theory. It's worth noting that 'zcdp'
is not suitable for subsampling nosie mechanism.
is not suitable for subsampling noise mechanism.
args (Union[int, float, numpy.ndarray, list, str]): Parameters
used for creating a privacy monitor.
kwargs (Union[int, float, numpy.ndarray, list, str]): Keyword


+ 2
- 0
mindarmour/privacy/diff_privacy/train/model.py View File

@@ -579,6 +579,8 @@ class _TrainOneStepCell(Cell):
original data. Default: 1.0.
noise_mech (Mechanisms): The object can generate the different type
of noise. Default: None.
clip_mech (Mechanisms): The object is used to update the adaptive clip.
Default: None.

Inputs:
- **data** (Tensor) - Tensor of shape :math:`(N, \ldots)`.


Loading…
Cancel
Save