@@ -291,7 +291,7 @@ mindarmour.adv_robustness.attacks | |||||
- **NotImplementedError** - norm_level不在[2, np.inf, '2', 'inf']中。 | - **NotImplementedError** - norm_level不在[2, np.inf, '2', 'inf']中。 | ||||
.. py:class:: mindarmour.adv_robustness.attacks.CarliniWagnerL2Attack(network, num_classes, box_min=0.0, box_max=1.0, bin_search_steps=5, max_iterations=1000, confidence=0, learning_rate=0.005, initial_const=0.01, abort_early_check_ratio=0.05, targeted=False, fast=True, abort_early=True, sparse=True) | |||||
.. py:class:: mindarmour.adv_robustness.attacks.CarliniWagnerL2Attack(network, num_classes, box_min=0.0, box_max=1.0, bin_search_steps=5, max_iterations=1000, confidence=0, learning_rate=5e-3, initial_const=1e-2, abort_early_check_ratio=5e-2, targeted=False, fast=True, abort_early=True, sparse=True) | |||||
使用L2范数的Carlini & Wagner攻击通过分别利用两个损失生成对抗样本:“对抗损失”可使生成的示例实际上是对抗性的,“距离损失”可以限制对抗样本的质量。 | 使用L2范数的Carlini & Wagner攻击通过分别利用两个损失生成对抗样本:“对抗损失”可使生成的示例实际上是对抗性的,“距离损失”可以限制对抗样本的质量。 | ||||
@@ -304,7 +304,7 @@ mindarmour.adv_robustness.attacks | |||||
- **box_min** (float) - 目标模型输入的下界。默认值:0。 | - **box_min** (float) - 目标模型输入的下界。默认值:0。 | ||||
- **box_max** (float) - 目标模型输入的上界。默认值:1.0。 | - **box_max** (float) - 目标模型输入的上界。默认值:1.0。 | ||||
- **bin_search_steps** (int) - 用于查找距离和置信度之间的最优代价常数的二进制搜索的步数。默认值:5。 | - **bin_search_steps** (int) - 用于查找距离和置信度之间的最优代价常数的二进制搜索的步数。默认值:5。 | ||||
- **max_itrations** (int) - 最大迭代次数,应大于零。默认值:1000。 | |||||
- **max_iterations** (int) - 最大迭代次数,应大于零。默认值:1000。 | |||||
- **confidence** (float) - 对抗样本输出的置信度。默认值:0。 | - **confidence** (float) - 对抗样本输出的置信度。默认值:0。 | ||||
- **learning_rate** (float) - 攻击算法的学习率。默认值:5e-3。 | - **learning_rate** (float) - 攻击算法的学习率。默认值:5e-3。 | ||||
- **initial_const** (float) - 用于平衡扰动范数和置信度差异的相对重要性的初始折衷常数。默认值:1e-2。 | - **initial_const** (float) - 用于平衡扰动范数和置信度差异的相对重要性的初始折衷常数。默认值:1e-2。 | ||||
@@ -359,7 +359,7 @@ mindarmour.adv_robustness.attacks | |||||
- **numpy.ndarray** - 对抗样本。 | - **numpy.ndarray** - 对抗样本。 | ||||
.. py:class:: mindarmour.adv_robustness.attacks.LBFGS(network, eps=1e-05, bounds=(0.0, 1.0), is_targeted=True, nb_iter=150, search_iters=30, loss_fn=None, sparse=False) | |||||
.. py:class:: mindarmour.adv_robustness.attacks.LBFGS(network, eps=1e-5, bounds=(0.0, 1.0), is_targeted=True, nb_iter=150, search_iters=30, loss_fn=None, sparse=False) | |||||
在L-BFGS-B攻击中,使用有限内存BFGS优化算法来最小化输入与对抗样本之间的距离。 | 在L-BFGS-B攻击中,使用有限内存BFGS优化算法来最小化输入与对抗样本之间的距离。 | ||||
@@ -389,7 +389,7 @@ mindarmour.adv_robustness.attacks | |||||
- **numpy.ndarray** - 生成的对抗样本。 | - **numpy.ndarray** - 生成的对抗样本。 | ||||
.. py:class:: mindarmour.adv_robustness.attacks.GeneticAttack(model, model_type='classification', targeted=True, reserve_ratio=0.3, sparse=True, pop_size=6, mutation_rate=0.005, per_bounds=0.15, max_steps=1000, step_size=0.2, temp=0.3, bounds=(0, 1.0), adaptive=False, c=0.1) | |||||
.. py:class:: mindarmour.adv_robustness.attacks.GeneticAttack(model, model_type='classification', targeted=True, reserve_ratio=0.3, sparse=True, pop_size=6, mutation_rate=0.005, per_bounds=0.15, max_steps=1000, step_size=0.20, temp=0.3, bounds=(0, 1.0), adaptive=False, c=0.1) | |||||
遗传攻击(Genetic Attack)表示基于遗传算法的黑盒攻击,属于差分进化算法。 | 遗传攻击(Genetic Attack)表示基于遗传算法的黑盒攻击,属于差分进化算法。 | ||||
@@ -478,7 +478,7 @@ mindarmour.adv_robustness.attacks | |||||
- **target_images** (numpy.ndarray) - 目标图像。 | - **target_images** (numpy.ndarray) - 目标图像。 | ||||
.. py:class:: mindarmour.adv_robustness.attacks.NES(model, scene, max_queries=10000, top_k=-1, num_class=10, batch_size=128, epsilon=0.3, samples_per_draw=128, momentum=0.9, learning_rate=0.001, max_lr=0.05, min_lr=0.0005, sigma=0.001, plateau_length=20, plateau_drop=2.0, adv_thresh=0.25, zero_iters=10, starting_eps=1.0, starting_delta_eps=0.5, label_only_sigma=0.001, conservative=2, sparse=True) | |||||
.. py:class:: mindarmour.adv_robustness.attacks.NES(model, scene, max_queries=10000, top_k=-1, num_class=10, batch_size=128, epsilon=0.3, samples_per_draw=128, momentum=0.9, learning_rate=1e-3, max_lr=0.05, min_lr=5e-4, sigma=1e-3, plateau_length=20, plateau_drop=2.0, adv_thresh=0.25, zero_iters=10, starting_eps=1.0, starting_delta_eps=0.5, label_only_sigma=0.001, conservative=2, sparse=True) | |||||
该类是自然进化策略(Natural Evolutionary Strategies,NES)攻击法的实现。NES使用自然进化策略来估计梯度,以提高查询效率。NES包括三个设置:Query-Limited设置、Partial-Information置和Label-Only设置。在query-limit设置中,攻击对目标模型的查询数量有限,但可以访问所有类的概率。在partial-info设置中,攻击仅有权访问top-k类的概率。 | 该类是自然进化策略(Natural Evolutionary Strategies,NES)攻击法的实现。NES使用自然进化策略来估计梯度,以提高查询效率。NES包括三个设置:Query-Limited设置、Partial-Information置和Label-Only设置。在query-limit设置中,攻击对目标模型的查询数量有限,但可以访问所有类的概率。在partial-info设置中,攻击仅有权访问top-k类的概率。 | ||||
在label-only设置中,攻击只能访问按其预测概率排序的k个推断标签列表。在Partial-Information设置和Label-Only设置中,NES会进行目标攻击,因此用户需要使用set_target_images方法来设置目标类的目标图像。 | 在label-only设置中,攻击只能访问按其预测概率排序的k个推断标签列表。在Partial-Information设置和Label-Only设置中,NES会进行目标攻击,因此用户需要使用set_target_images方法来设置目标类的目标图像。 | ||||
@@ -550,7 +550,7 @@ mindarmour.adv_robustness.attacks | |||||
- **model** (BlackModel) - 目标模型。 | - **model** (BlackModel) - 目标模型。 | ||||
- **max_iter** (int) - 生成对抗图像的最大迭代轮数。默认值:1000。 | - **max_iter** (int) - 生成对抗图像的最大迭代轮数。默认值:1000。 | ||||
- **search_ter** (int) - 二进制搜索的最大轮数。默认值:10。 | |||||
- **search_iter** (int) - 二进制搜索的最大轮数。默认值:10。 | |||||
- **is_targeted** (bool) - 如果为True,则为目标攻击。如果为False,则为无目标攻击。默认值:False。 | - **is_targeted** (bool) - 如果为True,则为目标攻击。如果为False,则为无目标攻击。默认值:False。 | ||||
- **init_attack** (Attack) - 用于查找起点的攻击。默认值:None。 | - **init_attack** (Attack) - 用于查找起点的攻击。默认值:None。 | ||||
- **sparse** (bool) - 如果为True,则输入标签为稀疏编码。如果为False,则输入标签为onehot编码。默认值:True。 | - **sparse** (bool) - 如果为True,则输入标签为稀疏编码。如果为False,则输入标签为onehot编码。默认值:True。 | ||||
@@ -50,7 +50,7 @@ mindarmour.adv_robustness.detectors | |||||
**返回:** | **返回:** | ||||
- **float** - 区分对抗样本和良性样本的阈值。 | |||||
- **float** - 区分对抗样本和良性样本的阈值。 | |||||
.. py:method:: set_threshold(threshold) | .. py:method:: set_threshold(threshold) | ||||
@@ -372,7 +372,7 @@ mindarmour.adv_robustness.detectors | |||||
- **list[int]** - 相邻检测之间的查询数。 | - **list[int]** - 相邻检测之间的查询数。 | ||||
.. py:method:: set_threshold(threshold) | |||||
.. py:method:: set_threshold(threshold, num_of_neighbors) | |||||
设置参数num_of_neighbors和threshold。 | 设置参数num_of_neighbors和threshold。 | ||||
@@ -37,11 +37,11 @@ mindarmour.fuzz_testing | |||||
'params': {'eps': [0.3, 0.2, 0.4], 'alpha': [0.1], 'bounds': [(0, 1)]}}] | 'params': {'eps': [0.3, 0.2, 0.4], 'alpha': [0.1], 'bounds': [(0, 1)]}}] | ||||
...] | ...] | ||||
- 支持的方法在列表 `self._strategies` 中,每个方法的参数必须在可选参数的范围内。支持的方法分为两种类型: | |||||
- 首先,自然鲁棒性方法包括:'Translate', 'Scale'、'Shear'、'Rotate'、'Perspective'、'Curve'、'GaussianBlur'、'MotionBlur'、'GradientBlur'、'Contrast'、'GradientLuminance'、'UniformNoise'、'GaussianNoise'、'SaltAndPepperNoise'、'NaturalNoise'。 | |||||
- 其次,对抗样本攻击方式包括:'FGSM'、'PGD'和'MDIM'。'FGSM'、'PGD'和'MDIM'分别是 FastGradientSignMethod、ProjectedGradientDent和MomentumDiverseInputIterativeMethod的缩写。 `mutate_config` 必须包含在['Contrast', 'GradientLuminance', 'GaussianBlur', 'MotionBlur', 'GradientBlur', 'UniformNoise', 'GaussianNoise', 'SaltAndPepperNoise', 'NaturalNoise']中的方法。 | |||||
- 支持的方法在列表 `self._strategies` 中,每个方法的参数必须在可选参数的范围内。支持的方法分为两种类型: | |||||
- 首先,自然鲁棒性方法包括:'Translate', 'Scale'、'Shear'、'Rotate'、'Perspective'、'Curve'、'GaussianBlur'、'MotionBlur'、'GradientBlur'、'Contrast'、'GradientLuminance'、'UniformNoise'、'GaussianNoise'、'SaltAndPepperNoise'、'NaturalNoise'。 | |||||
- 其次,对抗样本攻击方式包括:'FGSM'、'PGD'和'MDIM'。'FGSM'、'PGD'和'MDIM'分别是 FastGradientSignMethod、ProjectedGradientDent和MomentumDiverseInputIterativeMethod的缩写。 `mutate_config` 必须包含在['Contrast', 'GradientLuminance', 'GaussianBlur', 'MotionBlur', 'GradientBlur', 'UniformNoise', 'GaussianNoise', 'SaltAndPepperNoise', 'NaturalNoise']中的方法。 | |||||
- 第一类方法的参数设置方式可以在'mindarmour/natural_robustness/transform/image'中看到。第二类方法参数配置参考 `self._attack_param_checklists` 。 | |||||
- 第一类方法的参数设置方式可以在'mindarmour/natural_robustness/transform/image'中看到。第二类方法参数配置参考 `self._attack_param_checklists` 。 | |||||
- **initial_seeds** (list[list]) - 用于生成变异样本的初始种子队列。初始种子队列的格式为[[image_data, label], [...], ...],且标签必须为one-hot。 | - **initial_seeds** (list[list]) - 用于生成变异样本的初始种子队列。初始种子队列的格式为[[image_data, label], [...], ...],且标签必须为one-hot。 | ||||
- **coverage** (CoverageMetrics) - 神经元覆盖率指标类。 | - **coverage** (CoverageMetrics) - 神经元覆盖率指标类。 | ||||
- **evaluate** (bool) - 是否返回评估报告。默认值:True。 | - **evaluate** (bool) - 是否返回评估报告。默认值:True。 | ||||
@@ -26,7 +26,7 @@ mindarmour.privacy.diff_privacy | |||||
- **Tensor** - 生成的shape与给定梯度相同的噪声。 | - **Tensor** - 生成的shape与给定梯度相同的噪声。 | ||||
.. py:class:: mindarmour.privacy.diff_privacy.NoiseAdaGaussianRandom(norm_bound=1.0, initial_noise_multiplier=1.0, seed=0, noise_decay_rate=6e-06, decay_policy='Exp') | |||||
.. py:class:: mindarmour.privacy.diff_privacy.NoiseAdaGaussianRandom(norm_bound=1.0, initial_noise_multiplier=1.0, seed=0, noise_decay_rate=6e-6, decay_policy='Exp') | |||||
自适应高斯噪声产生机制。噪音会随着训练而衰减。衰减模式可以是'Time'、'Step'、'Exp'。 | 自适应高斯噪声产生机制。噪音会随着训练而衰减。衰减模式可以是'Time'、'Step'、'Exp'。 | ||||
在模型训练过程中,将更新 `self._noise_multiplier` 。 | 在模型训练过程中,将更新 `self._noise_multiplier` 。 | ||||
@@ -77,7 +77,7 @@ mindarmour.privacy.diff_privacy | |||||
**参数:** | **参数:** | ||||
- **empirical_fraction** (Tensor) - 梯度裁剪的经验分位数。 | |||||
- **empirical_fraction** (Tensor) - 梯度裁剪的经验分位数,最大值不超过 `target_unclipped_quantile` 。 | |||||
- **norm_bound** (Tensor) - 梯度的l2范数的裁剪范围。 | - **norm_bound** (Tensor) - 梯度的l2范数的裁剪范围。 | ||||
**返回:** | **返回:** | ||||
@@ -92,7 +92,7 @@ mindarmour.privacy.diff_privacy | |||||
详情请查看: `教程 <https://mindspore.cn/mindarmour/docs/zh-CN/master/protect_user_privacy_with_differential_privacy.html#%E5%B7%AE%E5%88%86%E9%9A%90%E7%A7%81>`_。 | 详情请查看: `教程 <https://mindspore.cn/mindarmour/docs/zh-CN/master/protect_user_privacy_with_differential_privacy.html#%E5%B7%AE%E5%88%86%E9%9A%90%E7%A7%81>`_。 | ||||
.. py:method:: create(mech_name, norm_bound=1.0, initial_noise_multiplier=1.0, seed=0, noise_decay_rate=6e-06, decay_policy=None) | |||||
.. py:method:: create(mech_name, norm_bound=1.0, initial_noise_multiplier=1.0, seed=0, noise_decay_rate=6e-6, decay_policy=None) | |||||
**参数:** | **参数:** | ||||
@@ -159,7 +159,7 @@ mindarmour.privacy.diff_privacy | |||||
- **Callback** - 隐私监视器。 | - **Callback** - 隐私监视器。 | ||||
.. py:class:: mindarmour.privacy.diff_privacy.RDPMonitor(num_samples, batch_size, initial_noise_multiplier=1.5, max_eps=10.0, target_delta=0.001, max_delta=None, target_eps=None, orders=None, noise_decay_mode='Time', noise_decay_rate=0.0006, per_print_times=50, dataset_sink_mode=False) | |||||
.. py:class:: mindarmour.privacy.diff_privacy.RDPMonitor(num_samples, batch_size, initial_noise_multiplier=1.5, max_eps=10.0, target_delta=1e-3, max_delta=None, target_eps=None, orders=None, noise_decay_mode='Time', noise_decay_rate=6e-4, per_print_times=50, dataset_sink_mode=False) | |||||
基于Renyi差分隐私(RDP)理论,计算DP训练的隐私预算。根据下面的参考文献,如果随机化机制被认为具有α阶的ε'-Renyi差分隐私,它也满足常规差分隐私(ε, δ),如下所示: | 基于Renyi差分隐私(RDP)理论,计算DP训练的隐私预算。根据下面的参考文献,如果随机化机制被认为具有α阶的ε'-Renyi差分隐私,它也满足常规差分隐私(ε, δ),如下所示: | ||||
@@ -56,7 +56,7 @@ mindarmour.privacy.evaluation | |||||
[{"method": "knn", "params": {"n_neighbors": [3, 5, 7]}}, | [{"method": "knn", "params": {"n_neighbors": [3, 5, 7]}}, | ||||
{"method": "lr", "params": {"C": np.logspace(-4, 2, 10)}}] | {"method": "lr", "params": {"C": np.logspace(-4, 2, 10)}}] | ||||
- 支持的方法有knn、lr、mlp和rf,每个方法的参数必须在可变参数的范围内。参数实现的提示可在下面找到: | |||||
- 支持的方法有knn、lr、mlp和rf,每个方法的参数必须在可变参数的范围内。参数实现的提示可在下面找到: | |||||
- `KNN <https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html>`_, | - `KNN <https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html>`_, | ||||
- `LR <https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html>`_, | - `LR <https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html>`_, | ||||
- `RF <https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html>`_, | - `RF <https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html>`_, | ||||
@@ -108,6 +108,7 @@ mindarmour.privacy.evaluation | |||||
根据target_features重建图像。 | 根据target_features重建图像。 | ||||
**参数:** | **参数:** | ||||
- **target_features** (numpy.ndarray) - 原始图像的深度表示。 `target_features` 的第一个维度应该是img_num。需要注意的是,如果img_num等于1,则 `target_features` 的形状应该是(1, dim2, dim3, ...)。 | - **target_features** (numpy.ndarray) - 原始图像的深度表示。 `target_features` 的第一个维度应该是img_num。需要注意的是,如果img_num等于1,则 `target_features` 的形状应该是(1, dim2, dim3, ...)。 | ||||
- **iters** (int) - 逆向攻击的迭代次数,应为正整数。默认值:100。 | - **iters** (int) - 逆向攻击的迭代次数,应为正整数。默认值:100。 | ||||
@@ -49,7 +49,7 @@ mindarmour.privacy.sup_privacy | |||||
详情请查看: `教程 <https://mindspore.cn/mindarmour/docs/zh-CN/master/protect_user_privacy_with_suppress_privacy.html#%E5%BC%95%E5%85%A5%E6%8A%91%E5%88%B6%E9%9A%90%E7%A7%81%E8%AE%AD%E7%BB%83>`_。 | 详情请查看: `教程 <https://mindspore.cn/mindarmour/docs/zh-CN/master/protect_user_privacy_with_suppress_privacy.html#%E5%BC%95%E5%85%A5%E6%8A%91%E5%88%B6%E9%9A%90%E7%A7%81%E8%AE%AD%E7%BB%83>`_。 | ||||
.. py:method:: create(networks, mask_layers, policy='local_train', end_epoch=10, batch_num=20, start_epoch=3, mask_times=1000, lr=0.05, sparse_end=0.9, sparse_start=0.0) | |||||
.. py:method:: create(networks, mask_layers, policy='local_train', end_epoch=10, batch_num=20, start_epoch=3, mask_times=1000, lr=0.05, sparse_end=0.90, sparse_start=0.0) | |||||
**参数:** | **参数:** | ||||
@@ -169,14 +169,13 @@ mindarmour.privacy.sup_privacy | |||||
- **cur_step** (int) - 整个训练过程的当前步骤。 | - **cur_step** (int) - 整个训练过程的当前步骤。 | ||||
- **cur_step_in_epoch** (int) - 当前epoch的当前步骤。 | - **cur_step_in_epoch** (int) - 当前epoch的当前步骤。 | ||||
.. py:class:: mindarmour.privacy.sup_privacy.MaskLayerDes(layer_name, grad_idx, is_add_noise, is_lower_clip, min_num, upper_bound=1.2) | |||||
.. py:class:: mindarmour.privacy.sup_privacy.MaskLayerDes(layer_name, grad_idx, is_add_noise, is_lower_clip, min_num, upper_bound=1.20) | |||||
描述需要抑制的层。 | 描述需要抑制的层。 | ||||
**参数:** | **参数:** | ||||
- **layer_name** (str) - 层名称,如下获取一个层的名称: | - **layer_name** (str) - 层名称,如下获取一个层的名称: | ||||
.. code-block:: | .. code-block:: | ||||
for layer in networks.get_parameters(expand=True): | for layer in networks.get_parameters(expand=True): | ||||
@@ -192,11 +192,11 @@ MindArmour是MindSpore的工具箱,用于增强模型可信,实现隐私保 | |||||
'params': {'eps': [0.3, 0.2, 0.4], 'alpha': [0.1], 'bounds': [(0, 1)]}}] | 'params': {'eps': [0.3, 0.2, 0.4], 'alpha': [0.1], 'bounds': [(0, 1)]}}] | ||||
...] | ...] | ||||
- 支持的方法在列表 `self._strategies` 中,每个方法的参数必须在可选参数的范围内。支持的方法分为两种类型: | |||||
- 首先,自然鲁棒性方法包括:'Translate', 'Scale'、'Shear'、'Rotate'、'Perspective'、'Curve'、'GaussianBlur'、'MotionBlur'、'GradientBlur'、'Contrast'、'GradientLuminance'、'UniformNoise'、'GaussianNoise'、'SaltAndPepperNoise'、'NaturalNoise'。 | |||||
- 其次,对抗样本攻击方式包括:'FGSM'、'PGD'和'MDIM'。'FGSM'、'PGD'和'MDIM'分别是 FastGradientSignMethod、ProjectedGradientDent和MomentumDiverseInputIterativeMethod的缩写。 `mutate_config` 必须包含在['Contrast', 'GradientLuminance', 'GaussianBlur', 'MotionBlur', 'GradientBlur', 'UniformNoise', 'GaussianNoise', 'SaltAndPepperNoise', 'NaturalNoise']中的方法。 | |||||
- 支持的方法在列表 `self._strategies` 中,每个方法的参数必须在可选参数的范围内。支持的方法分为两种类型: | |||||
- 首先,自然鲁棒性方法包括:'Translate', 'Scale'、'Shear'、'Rotate'、'Perspective'、'Curve'、'GaussianBlur'、'MotionBlur'、'GradientBlur'、'Contrast'、'GradientLuminance'、'UniformNoise'、'GaussianNoise'、'SaltAndPepperNoise'、'NaturalNoise'。 | |||||
- 其次,对抗样本攻击方式包括:'FGSM'、'PGD'和'MDIM'。'FGSM'、'PGD'和'MDIM'分别是 FastGradientSignMethod、ProjectedGradientDent和MomentumDiverseInputIterativeMethod的缩写。 `mutate_config` 必须包含在['Contrast', 'GradientLuminance', 'GaussianBlur', 'MotionBlur', 'GradientBlur', 'UniformNoise', 'GaussianNoise', 'SaltAndPepperNoise', 'NaturalNoise']中的方法。 | |||||
- 第一类方法的参数设置方式可以在 `mindarmour/natural_robustness/transform/image <https://gitee.com/mindspore/mindarmour/tree/master/mindarmour/natural_robustness/transform/image>`_ 中看到。第二类方法参数配置参考 `self._attack_param_checklists` 。 | |||||
- 第一类方法的参数设置方式可以在 `mindarmour/natural_robustness/transform/image <https://gitee.com/mindspore/mindarmour/tree/master/mindarmour/natural_robustness/transform/image>`_ 中看到。第二类方法参数配置参考 `self._attack_param_checklists` 。 | |||||
- **initial_seeds** (list[list]) - 用于生成变异样本的初始种子队列。初始种子队列的格式为[[image_data, label], [...], ...],且标签必须为one-hot。 | - **initial_seeds** (list[list]) - 用于生成变异样本的初始种子队列。初始种子队列的格式为[[image_data, label], [...], ...],且标签必须为one-hot。 | ||||
- **coverage** (CoverageMetrics) - 神经元覆盖率指标类。 | - **coverage** (CoverageMetrics) - 神经元覆盖率指标类。 | ||||
- **evaluate** (bool) - 是否返回评估报告。默认值:True。 | - **evaluate** (bool) - 是否返回评估报告。默认值:True。 | ||||
@@ -229,7 +229,7 @@ MindArmour是MindSpore的工具箱,用于增强模型可信,实现隐私保 | |||||
- **micro_batches** (int) - 从原始批次拆分的小批次数。默认值:2。 | - **micro_batches** (int) - 从原始批次拆分的小批次数。默认值:2。 | ||||
- **norm_bound** (float) - 用于剪裁绑定,如果设置为1,将返回原始数据。默认值:1.0。 | - **norm_bound** (float) - 用于剪裁绑定,如果设置为1,将返回原始数据。默认值:1.0。 | ||||
- **norm_bound** (float) - 对象可以生成不同类型的噪音。默认值:None。 | |||||
- **norm_mech** (float) - 对象可以生成不同类型的噪音。默认值:None。 | |||||
- **clip_mech** (Mechanisms) - 该对象用于更新自适应剪裁。默认值:None。 | - **clip_mech** (Mechanisms) - 该对象用于更新自适应剪裁。默认值:None。 | ||||
**异常:** | **异常:** | ||||
@@ -288,7 +288,7 @@ MindArmour是MindSpore的工具箱,用于增强模型可信,实现隐私保 | |||||
[{"method": "knn", "params": {"n_neighbors": [3, 5, 7]}}, | [{"method": "knn", "params": {"n_neighbors": [3, 5, 7]}}, | ||||
{"method": "lr", "params": {"C": np.logspace(-4, 2, 10)}}] | {"method": "lr", "params": {"C": np.logspace(-4, 2, 10)}}] | ||||
- 支持的方法有knn、lr、mlp和rf,每个方法的参数必须在可变参数的范围内。参数实现的提示可在下面找到: | |||||
- 支持的方法有knn、lr、mlp和rf,每个方法的参数必须在可变参数的范围内。参数实现的提示可在下面找到: | |||||
- `KNN <https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html>`_ , | - `KNN <https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html>`_ , | ||||
- `LR <https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html>`_ , | - `LR <https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html>`_ , | ||||
- `RF <https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html>`_ , | - `RF <https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html>`_ , | ||||
@@ -318,7 +318,7 @@ MindArmour是MindSpore的工具箱,用于增强模型可信,实现隐私保 | |||||
- **ValueError** - input_shape的值都不是正int。 | - **ValueError** - input_shape的值都不是正int。 | ||||
- **ValueError** - loss_weights的值都不是正值。 | - **ValueError** - loss_weights的值都不是正值。 | ||||
.. py:method:: evaluate(original_images, inversion_images, labels=None, new_network=None) | |||||
.. py:method:: evaluate(original_images, inversion_images, labels=None, new_network=None) | |||||
通过三个指标评估还原图像的质量:原始图像和还原图像之间的平均L2距离和SSIM值,以及新模型对还原图像的推理结果在真实标签上的置信度平均值。 | 通过三个指标评估还原图像的质量:原始图像和还原图像之间的平均L2距离和SSIM值,以及新模型对还原图像的推理结果在真实标签上的置信度平均值。 | ||||