本文整理汇总了Python中differential_privacy.dp_sgd.per_example_gradients.per_example_gradients.PerExampleGradients方法的典型用法代码示例。如果您正苦于以下问题:Python per_example_gradients.PerExampleGradients方法的具体用法?Python per_example_gradients.PerExampleGradients怎么用?Python per_example_gradients.PerExampleGradients使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类differential_privacy.dp_sgd.per_example_gradients.per_example_gradients
的用法示例。
在下文中一共展示了per_example_gradients.PerExampleGradients方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: compute_sanitized_gradients
# 需要导入模块: from differential_privacy.dp_sgd.per_example_gradients import per_example_gradients [as 别名]
# 或者: from differential_privacy.dp_sgd.per_example_gradients.per_example_gradients import PerExampleGradients [as 别名]
def compute_sanitized_gradients(self, loss, var_list=None,
add_noise=True):
"""Compute the sanitized gradients.
Args:
loss: the loss tensor.
var_list: the optional variables.
add_noise: if true, then add noise. Always clip.
Returns:
a pair of (list of sanitized gradients) and privacy spending accumulation
operations.
Raises:
TypeError: if var_list contains non-variable.
"""
self._assert_valid_dtypes([loss])
xs = [tf.convert_to_tensor(x) for x in var_list]
px_grads = per_example_gradients.PerExampleGradients(loss, xs)
sanitized_grads = []
for px_grad, v in zip(px_grads, var_list):
tensor_name = utils.GetTensorOpName(v)
sanitized_grad = self._sanitizer.sanitize(
px_grad, self._eps_delta, sigma=self._sigma,
tensor_name=tensor_name, add_noise=add_noise,
num_examples=self._batches_per_lot * tf.slice(
tf.shape(px_grad), [0], [1]))
sanitized_grads.append(sanitized_grad)
return sanitized_grads