提交 0c7dac39 编写于 作者: M mindspore-ci-bot 提交者: Gitee

!59 update param name of Mechanism and version number

Merge pull request !59 from zheng-huanhuan/master
......@@ -116,7 +116,7 @@ if __name__ == "__main__":
noise_mech = NoiseMechanismsFactory().create(cfg.noise_mechanisms,
norm_bound=cfg.norm_bound,
initial_noise_multiplier=cfg.initial_noise_multiplier,
noise_update=None)
decay_policy=None)
# Create a factory class of clip mechanisms, this method is to adaptive clip
# gradients while training, decay_policy support 'Linear' and 'Geometric',
# learning_rate is the learning rate to update clip_norm,
......
......@@ -115,7 +115,7 @@ if __name__ == "__main__":
noise_mech = NoiseMechanismsFactory().create(cfg.noise_mechanisms,
norm_bound=cfg.norm_bound,
initial_noise_multiplier=cfg.initial_noise_multiplier,
noise_update='Exp')
decay_policy='Exp')
net_opt = nn.Momentum(params=network.trainable_params(),
learning_rate=cfg.lr, momentum=cfg.momentum)
......
......@@ -111,7 +111,7 @@ if __name__ == "__main__":
dp_opt.set_mechanisms(cfg.noise_mechanisms,
norm_bound=cfg.norm_bound,
initial_noise_multiplier=cfg.initial_noise_multiplier,
noise_update='Exp')
decay_policy='Exp')
# Create a factory class of clip mechanisms, this method is to adaptive clip
# gradients while training, decay_policy support 'Linear' and 'Geometric',
# learning_rate is the learning rate to update clip_norm,
......
......@@ -83,7 +83,7 @@ class NoiseMechanismsFactory:
@staticmethod
def create(mech_name='Gaussian', norm_bound=0.5, initial_noise_multiplier=1.5, seed=0, noise_decay_rate=6e-6,
noise_update=None):
decay_policy=None):
"""
Args:
mech_name(str): Noise generated strategy, could be 'Gaussian' or
......@@ -97,7 +97,7 @@ class NoiseMechanismsFactory:
random number. IF seed!=0 random normal will generate values using
given seed.
noise_decay_rate(float): Hyper parameter for controlling the noise decay.
noise_update(str): Mechanisms parameters update policy. Default: None, no
decay_policy(str): Mechanisms parameters update policy. Default: None, no
parameters need update.
Raises:
......@@ -141,13 +141,13 @@ class NoiseMechanismsFactory:
return NoiseGaussianRandom(norm_bound=norm_bound,
initial_noise_multiplier=initial_noise_multiplier,
seed=seed,
noise_update=noise_update)
decay_policy=decay_policy)
if mech_name == 'AdaGaussian':
return NoiseAdaGaussianRandom(norm_bound=norm_bound,
initial_noise_multiplier=initial_noise_multiplier,
seed=seed,
noise_decay_rate=noise_decay_rate,
noise_update=noise_update)
decay_policy=decay_policy)
raise NameError("The {} is not implement, please choose "
"['Gaussian', 'AdaGaussian']".format(mech_name))
......@@ -176,7 +176,7 @@ class NoiseGaussianRandom(_Mechanisms):
seed(int): Original random seed, if seed=0 random normal will use secure
random number. IF seed!=0 random normal will generate values using
given seed.
noise_update(str): Mechanisms parameters update policy. Default: None.
decay_policy(str): Mechanisms parameters update policy. Default: None.
Returns:
Tensor, generated noise with shape like given gradients.
......@@ -186,13 +186,13 @@ class NoiseGaussianRandom(_Mechanisms):
>>> norm_bound = 0.5
>>> initial_noise_multiplier = 1.5
>>> seed = 0
>>> noise_update = None
>>> net = NoiseGaussianRandom(norm_bound, initial_noise_multiplier, seed, noise_update)
>>> decay_policy = None
>>> net = NoiseGaussianRandom(norm_bound, initial_noise_multiplier, seed, decay_policy)
>>> res = net(gradients)
>>> print(res)
"""
def __init__(self, norm_bound, initial_noise_multiplier, seed, noise_update=None):
def __init__(self, norm_bound, initial_noise_multiplier, seed, decay_policy=None):
super(NoiseGaussianRandom, self).__init__()
self._norm_bound = check_value_positive('norm_bound', norm_bound)
self._norm_bound = Tensor(norm_bound, mstype.float32)
......@@ -200,9 +200,9 @@ class NoiseGaussianRandom(_Mechanisms):
initial_noise_multiplier)
self._initial_noise_multiplier = Tensor(initial_noise_multiplier, mstype.float32)
self._mean = Tensor(0, mstype.float32)
if noise_update is not None:
raise ValueError('noise_update must be None in GaussianRandom class, but got {}.'.format(noise_update))
self._noise_update = noise_update
if decay_policy is not None:
raise ValueError('decay_policy must be None in GaussianRandom class, but got {}.'.format(decay_policy))
self._decay_policy = decay_policy
self._seed = seed
def construct(self, gradients):
......@@ -237,7 +237,7 @@ class NoiseAdaGaussianRandom(NoiseGaussianRandom):
random number. IF seed!=0 random normal will generate values using
given seed.
noise_decay_rate(float): Hyper parameter for controlling the noise decay.
noise_update(str): Noise decay strategy include 'Step', 'Time', 'Exp'.
decay_policy(str): Noise decay strategy include 'Step', 'Time', 'Exp'.
Returns:
Tensor, generated noise with shape like given gradients.
......@@ -248,13 +248,13 @@ class NoiseAdaGaussianRandom(NoiseGaussianRandom):
>>> initial_noise_multiplier = 1.5
>>> seed = 0
>>> noise_decay_rate = 6e-4
>>> noise_update = "Time"
>>> net = NoiseAdaGaussianRandom(norm_bound, initial_noise_multiplier, seed, noise_decay_rate, noise_update)
>>> decay_policy = "Time"
>>> net = NoiseAdaGaussianRandom(norm_bound, initial_noise_multiplier, seed, noise_decay_rate, decay_policy)
>>> res = net(gradients)
>>> print(res)
"""
def __init__(self, norm_bound, initial_noise_multiplier, seed, noise_decay_rate, noise_update):
def __init__(self, norm_bound, initial_noise_multiplier, seed, noise_decay_rate, decay_policy):
super(NoiseAdaGaussianRandom, self).__init__(norm_bound=norm_bound,
initial_noise_multiplier=initial_noise_multiplier,
seed=seed)
......@@ -263,10 +263,10 @@ class NoiseAdaGaussianRandom(NoiseGaussianRandom):
noise_decay_rate = check_param_type('noise_decay_rate', noise_decay_rate, float)
check_param_in_range('noise_decay_rate', noise_decay_rate, 0.0, 1.0)
self._noise_decay_rate = Tensor(noise_decay_rate, mstype.float32)
if noise_update not in ['Time', 'Step', 'Exp']:
raise NameError("The noise_update must be in ['Time', 'Step', 'Exp'], but "
"get {}".format(noise_update))
self._noise_update = noise_update
if decay_policy not in ['Time', 'Step', 'Exp']:
raise NameError("The decay_policy must be in ['Time', 'Step', 'Exp'], but "
"get {}".format(decay_policy))
self._decay_policy = decay_policy
class _MechanismsParamsUpdater(Cell):
......@@ -274,7 +274,7 @@ class _MechanismsParamsUpdater(Cell):
Update mechanisms parameters, the parameters will refresh in train period.
Args:
noise_update(str): Pass in by the mechanisms class, mechanisms parameters
decay_policy(str): Pass in by the mechanisms class, mechanisms parameters
update policy.
decay_rate(Tensor): Pass in by the mechanisms class, hyper parameter for
controlling the decay size.
......@@ -286,9 +286,9 @@ class _MechanismsParamsUpdater(Cell):
Returns:
Tuple, next params value.
"""
def __init__(self, noise_update, decay_rate, cur_noise_multiplier, init_noise_multiplier):
def __init__(self, decay_policy, decay_rate, cur_noise_multiplier, init_noise_multiplier):
super(_MechanismsParamsUpdater, self).__init__()
self._noise_update = noise_update
self._decay_policy = decay_policy
self._decay_rate = decay_rate
self._cur_noise_multiplier = cur_noise_multiplier
self._init_noise_multiplier = init_noise_multiplier
......@@ -308,12 +308,12 @@ class _MechanismsParamsUpdater(Cell):
Returns:
Tuple, next step parameters value.
"""
if self._noise_update == 'Time':
if self._decay_policy == 'Time':
temp = self._div(self._init_noise_multiplier, self._cur_noise_multiplier)
temp = self._add(temp, self._decay_rate)
next_noise_multiplier = self._assign(self._cur_noise_multiplier,
self._div(self._init_noise_multiplier, temp))
elif self._noise_update == 'Step':
elif self._decay_policy == 'Step':
temp = self._sub(self._one, self._decay_rate)
next_noise_multiplier = self._assign(self._cur_noise_multiplier,
self._mul(temp, self._cur_noise_multiplier))
......
......@@ -127,8 +127,8 @@ class DPOptimizerClassFactory:
self._micro_float = Tensor(micro_batches, mstype.float32)
self._mech_param_updater = None
if self._mech is not None and self._mech._noise_update is not None:
self._mech_param_updater = _MechanismsParamsUpdater(noise_update=self._mech._noise_update,
if self._mech is not None and self._mech._decay_policy is not None:
self._mech_param_updater = _MechanismsParamsUpdater(decay_policy=self._mech._decay_policy,
decay_rate=self._mech._noise_decay_rate,
cur_noise_multiplier=
self._mech._noise_multiplier,
......
......@@ -432,9 +432,9 @@ class _TrainOneStepWithLossScaleCell(Cell):
self._cast = P.Cast()
self._noise_mech_param_updater = None
if self._noise_mech is not None and self._noise_mech._noise_update is not None:
if self._noise_mech is not None and self._noise_mech._decay_policy is not None:
self._noise_mech_param_updater = _MechanismsParamsUpdater(
noise_update=self._noise_mech._noise_update,
decay_policy=self._noise_mech._decay_policy,
decay_rate=self._noise_mech._noise_decay_rate,
cur_noise_multiplier=
self._noise_mech._noise_multiplier,
......@@ -636,9 +636,9 @@ class _TrainOneStepCell(Cell):
self._micro_float = Tensor(micro_batches, mstype.float32)
self._noise_mech_param_updater = None
if self._noise_mech is not None and self._noise_mech._noise_update is not None:
if self._noise_mech is not None and self._noise_mech._decay_policy is not None:
self._noise_mech_param_updater = _MechanismsParamsUpdater(
noise_update=self._noise_mech._noise_update,
decay_policy=self._noise_mech._decay_policy,
decay_rate=self._noise_mech._noise_decay_rate,
cur_noise_multiplier=
self._noise_mech._noise_multiplier,
......
......@@ -18,7 +18,7 @@ from setuptools import setup
from setuptools.command.egg_info import egg_info
from setuptools.command.build_py import build_py
version = '0.5.0'
version = '0.6.0'
cur_dir = os.path.dirname(os.path.realpath(__file__))
pkg_dir = os.path.join(cur_dir, 'build')
......
......@@ -35,7 +35,7 @@ def test_graph_factory():
norm_bound = 1.0
initial_noise_multiplier = 0.1
alpha = 0.5
noise_update = 'Step'
decay_policy = 'Step'
factory = NoiseMechanismsFactory()
noise_mech = factory.create('Gaussian',
norm_bound,
......@@ -46,7 +46,7 @@ def test_graph_factory():
norm_bound,
initial_noise_multiplier,
noise_decay_rate=alpha,
noise_update=noise_update)
decay_policy=decay_policy)
ada_noise = ada_noise_mech(grad)
print('ada noise: ', ada_noise)
......@@ -61,7 +61,7 @@ def test_pynative_factory():
norm_bound = 1.0
initial_noise_multiplier = 0.1
alpha = 0.5
noise_update = 'Step'
decay_policy = 'Step'
factory = NoiseMechanismsFactory()
noise_mech = factory.create('Gaussian',
norm_bound,
......@@ -72,7 +72,7 @@ def test_pynative_factory():
norm_bound,
initial_noise_multiplier,
noise_decay_rate=alpha,
noise_update=noise_update)
decay_policy=decay_policy)
ada_noise = ada_noise_mech(grad)
print('ada noise: ', ada_noise)
......@@ -87,7 +87,7 @@ def test_pynative_gaussian():
norm_bound = 1.0
initial_noise_multiplier = 0.1
alpha = 0.5
noise_update = 'Step'
decay_policy = 'Step'
factory = NoiseMechanismsFactory()
noise_mech = factory.create('Gaussian',
norm_bound,
......@@ -98,7 +98,7 @@ def test_pynative_gaussian():
norm_bound,
initial_noise_multiplier,
noise_decay_rate=alpha,
noise_update=noise_update)
decay_policy=decay_policy)
ada_noise = ada_noise_mech(grad)
print('ada noise: ', ada_noise)
......@@ -113,12 +113,12 @@ def test_graph_ada_gaussian():
norm_bound = 1.0
initial_noise_multiplier = 0.1
noise_decay_rate = 0.5
noise_update = 'Step'
decay_policy = 'Step'
ada_noise_mech = NoiseAdaGaussianRandom(norm_bound,
initial_noise_multiplier,
seed=0,
noise_decay_rate=noise_decay_rate,
noise_update=noise_update)
decay_policy=decay_policy)
res = ada_noise_mech(grad)
print(res)
......@@ -133,12 +133,12 @@ def test_pynative_ada_gaussian():
norm_bound = 1.0
initial_noise_multiplier = 0.1
noise_decay_rate = 0.5
noise_update = 'Step'
decay_policy = 'Step'
ada_noise_mech = NoiseAdaGaussianRandom(norm_bound,
initial_noise_multiplier,
seed=0,
noise_decay_rate=noise_decay_rate,
noise_update=noise_update)
decay_policy=decay_policy)
res = ada_noise_mech(grad)
print(res)
......@@ -153,13 +153,13 @@ def test_graph_exponential():
norm_bound = 1.0
initial_noise_multiplier = 0.1
alpha = 0.5
noise_update = 'Exp'
decay_policy = 'Exp'
factory = NoiseMechanismsFactory()
ada_noise = factory.create('AdaGaussian',
norm_bound,
initial_noise_multiplier,
noise_decay_rate=alpha,
noise_update=noise_update)
decay_policy=decay_policy)
ada_noise = ada_noise(grad)
print('ada noise: ', ada_noise)
......@@ -174,13 +174,13 @@ def test_pynative_exponential():
norm_bound = 1.0
initial_noise_multiplier = 0.1
alpha = 0.5
noise_update = 'Exp'
decay_policy = 'Exp'
factory = NoiseMechanismsFactory()
ada_noise = factory.create('AdaGaussian',
norm_bound,
initial_noise_multiplier,
noise_decay_rate=alpha,
noise_update=noise_update)
decay_policy=decay_policy)
ada_noise = ada_noise(grad)
print('ada noise: ', ada_noise)
......
......@@ -136,7 +136,7 @@ def test_dp_model_with_graph_mode_ada_gaussian():
norm_bound=norm_bound,
initial_noise_multiplier=initial_noise_multiplier,
noise_decay_rate=alpha,
noise_update='Exp')
decay_policy='Exp')
clip_mech = None
net_opt = nn.Momentum(network.trainable_params(), learning_rate=0.1,
momentum=0.9)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册