Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
mindarmour
提交
b4d85e56
M
mindarmour
项目概览
MindSpore
/
mindarmour
通知
4
Star
2
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindarmour
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b4d85e56
编写于
7月 17, 2020
作者:
J
jin-xiulang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix issues.
上级
01d40e16
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
30 addition
and
17 deletion
+30
-17
mindarmour/attacks/attack.py
mindarmour/attacks/attack.py
+2
-2
mindarmour/attacks/carlini_wagner.py
mindarmour/attacks/carlini_wagner.py
+1
-0
mindarmour/attacks/deep_fool.py
mindarmour/attacks/deep_fool.py
+1
-0
mindarmour/attacks/jsma.py
mindarmour/attacks/jsma.py
+1
-0
mindarmour/detectors/black/similarity_detector.py
mindarmour/detectors/black/similarity_detector.py
+2
-2
mindarmour/detectors/region_based_detector.py
mindarmour/detectors/region_based_detector.py
+2
-2
mindarmour/detectors/spatial_smoothing.py
mindarmour/detectors/spatial_smoothing.py
+2
-2
mindarmour/diff_privacy/monitor/monitor.py
mindarmour/diff_privacy/monitor/monitor.py
+10
-8
mindarmour/evaluations/black/defense_evaluation.py
mindarmour/evaluations/black/defense_evaluation.py
+1
-1
mindarmour/fuzzing/model_coverage_metrics.py
mindarmour/fuzzing/model_coverage_metrics.py
+8
-0
未找到文件。
mindarmour/attacks/attack.py
浏览文件 @
b4d85e56
...
...
@@ -49,8 +49,8 @@ class Attack:
numpy.ndarray, generated adversarial examples
Examples:
>>> inputs =
Tensor
([[0.2, 0.4, 0.5, 0.2], [0.7, 0.2, 0.4, 0.3]])
>>> labels =
[3, 0]
>>> inputs =
np.array
([[0.2, 0.4, 0.5, 0.2], [0.7, 0.2, 0.4, 0.3]])
>>> labels =
np.array([3, 0])
>>> advs = attack.batch_generate(inputs, labels, batch_size=2)
"""
arr_x
,
arr_y
=
check_pair_numpy_param
(
'inputs'
,
inputs
,
'labels'
,
labels
)
...
...
mindarmour/attacks/carlini_wagner.py
浏览文件 @
b4d85e56
...
...
@@ -107,6 +107,7 @@ class CarliniWagnerL2Attack(Attack):
LOGGER
.
info
(
TAG
,
"init CW object."
)
super
(
CarliniWagnerL2Attack
,
self
).
__init__
()
self
.
_network
=
check_model
(
'network'
,
network
,
Cell
)
self
.
_network
.
set_grad
(
True
)
self
.
_num_classes
=
check_int_positive
(
'num_classes'
,
num_classes
)
self
.
_min
=
check_param_type
(
'box_min'
,
box_min
,
float
)
self
.
_max
=
check_param_type
(
'box_max'
,
box_max
,
float
)
...
...
mindarmour/attacks/deep_fool.py
浏览文件 @
b4d85e56
...
...
@@ -61,6 +61,7 @@ class DeepFool(Attack):
norm_level
=
2
,
bounds
=
None
,
sparse
=
True
):
super
(
DeepFool
,
self
).
__init__
()
self
.
_network
=
check_model
(
'network'
,
network
,
Cell
)
self
.
_network
.
set_grad
(
True
)
self
.
_max_iters
=
check_int_positive
(
'max_iters'
,
max_iters
)
self
.
_overshoot
=
check_value_positive
(
'overshoot'
,
overshoot
)
self
.
_norm_level
=
check_norm_level
(
norm_level
)
...
...
mindarmour/attacks/jsma.py
浏览文件 @
b4d85e56
...
...
@@ -65,6 +65,7 @@ class JSMAAttack(Attack):
super
(
JSMAAttack
).
__init__
()
LOGGER
.
debug
(
TAG
,
"init jsma class."
)
self
.
_network
=
check_model
(
'network'
,
network
,
Cell
)
self
.
_network
.
set_grad
(
True
)
self
.
_min
=
check_value_non_negative
(
'box_min'
,
box_min
)
self
.
_max
=
check_value_non_negative
(
'box_max'
,
box_max
)
self
.
_num_classes
=
check_int_positive
(
'num_classes'
,
num_classes
)
...
...
mindarmour/detectors/black/similarity_detector.py
浏览文件 @
b4d85e56
...
...
@@ -74,8 +74,8 @@ class SimilarityDetector(Detector):
Examples:
>>> detector = SimilarityDetector(model)
>>> detector.fit(
Tensor(ori), Tensor(labels)
)
>>> adv_ids = detector.detect(
Tensor(adv)
)
>>> detector.fit(
ori, labels
)
>>> adv_ids = detector.detect(
adv
)
"""
def
__init__
(
self
,
trans_model
,
max_k_neighbor
=
1000
,
chunk_size
=
1000
,
...
...
mindarmour/detectors/region_based_detector.py
浏览文件 @
b4d85e56
...
...
@@ -53,8 +53,8 @@ class RegionBasedDetector(Detector):
Examples:
>>> detector = RegionBasedDetector(model)
>>> detector.fit(
Tensor(ori), Tensor(labels)
)
>>> adv_ids = detector.detect(
Tensor(adv)
)
>>> detector.fit(
ori, labels
)
>>> adv_ids = detector.detect(
adv
)
"""
def
__init__
(
self
,
model
,
number_points
=
10
,
initial_radius
=
0.0
,
...
...
mindarmour/detectors/spatial_smoothing.py
浏览文件 @
b4d85e56
...
...
@@ -50,8 +50,8 @@ class SpatialSmoothing(Detector):
Examples:
>>> detector = SpatialSmoothing(model)
>>> detector.fit(
Tensor(ori), Tensor(labels)
)
>>> adv_ids = detector.detect(
Tensor(adv)
)
>>> detector.fit(
ori, labels
)
>>> adv_ids = detector.detect(
adv
)
"""
def
__init__
(
self
,
model
,
ksize
=
3
,
is_local_smooth
=
True
,
...
...
mindarmour/diff_privacy/monitor/monitor.py
浏览文件 @
b4d85e56
...
...
@@ -112,14 +112,15 @@ class RDPMonitor(Callback):
>>> net_loss = nn.SoftmaxCrossEntropyWithLogits()
>>> epochs = 2
>>> norm_clip = 1.0
>>> initial_noise_multiplier =
0.01
>>> mech =
MechanismsFactory().create('
Gaussian',
>>> initial_noise_multiplier =
1.5
>>> mech =
NoiseMechanismsFactory().create('Ada
Gaussian',
>>> norm_bound=norm_clip, initial_noise_multiplier=initial_noise_multiplier)
>>> net_opt = nn.Momentum(network.trainable_params(), 0.01, 0.9)
>>> model = DPModel(micro_batches=2, norm_clip=norm_clip,
>>> mech=mech, network=network, loss_fn=loss, optimizer=net_opt, metrics=None)
>>> rdp = PrivacyMonitorFactory.create(policy='rdp',
>>> num_samples=60000, batch_size=256)
>>> num_samples=60000, batch_size=256,
>>> initial_noise_multiplier=initial_noise_multiplier)
>>> model.train(epochs, ds, callbacks=[rdp], dataset_sink_mode=False)
"""
...
...
@@ -392,15 +393,16 @@ class ZCDPMonitor(Callback):
>>> net_loss = nn.SoftmaxCrossEntropyWithLogits()
>>> epochs = 2
>>> norm_clip = 1.0
>>> initial_noise_multiplier =
0.01
>>> mech =
MechanismsFactory().create('
Gaussian',
>>> initial_noise_multiplier =
1.5
>>> mech =
NoiseMechanismsFactory().create('Ada
Gaussian',
>>> norm_bound=norm_clip, initial_noise_multiplier=initial_noise_multiplier)
>>> net_opt = nn.Momentum(network.trainable_params(), 0.01, 0.9)
>>> model = DPModel(micro_batches=2, norm_clip=norm_clip,
>>> mech=mech, network=network, loss_fn=loss, optimizer=net_opt, metrics=None)
>>> rdp = PrivacyMonitorFactory.create(policy='rdp',
>>> num_samples=60000, batch_size=256)
>>> model.train(epochs, ds, callbacks=[rdp], dataset_sink_mode=False)
>>> zcdp = PrivacyMonitorFactory.create(policy='zcdp',
>>> num_samples=60000, batch_size=256,
>>> initial_noise_multiplier=initial_noise_multiplier)
>>> model.train(epochs, ds, callbacks=[zcdp], dataset_sink_mode=False)
"""
def
__init__
(
self
,
num_samples
,
batch_size
,
initial_noise_multiplier
=
1.5
,
...
...
mindarmour/evaluations/black/defense_evaluation.py
浏览文件 @
b4d85e56
...
...
@@ -70,7 +70,7 @@ class BlackDefenseEvaluate:
>>> def_detection_counts = np.array([1, 5, 10])
>>> true_labels = np.array([3, 1, 0])
>>> max_queries = 100
>>> def_eval = BlackDefenseEvaluat(raw_preds,
>>> def_eval = BlackDefenseEvaluat
e
(raw_preds,
>>> def_preds,
>>> raw_query_counts,
>>> def_query_counts,
...
...
mindarmour/fuzzing/model_coverage_metrics.py
浏览文件 @
b4d85e56
...
...
@@ -22,6 +22,10 @@ from mindspore import Model
from
mindarmour.utils._check_param
import
check_model
,
check_numpy_param
,
\
check_int_positive
from
mindarmour.utils.logger
import
LogUtil
LOGGER
=
LogUtil
.
get_instance
()
TAG
=
'ModelCoverageMetrics'
class
ModelCoverageMetrics
:
...
...
@@ -59,6 +63,10 @@ class ModelCoverageMetrics:
self
.
_model
=
check_model
(
'model'
,
model
,
Model
)
self
.
_segmented_num
=
check_int_positive
(
'segmented_num'
,
segmented_num
)
self
.
_neuron_num
=
check_int_positive
(
'neuron_num'
,
neuron_num
)
if
self
.
_neuron_num
>
1e+10
:
msg
=
'neuron_num should be less than 1e+10, otherwise a MemoryError'
\
'would occur'
LOGGER
.
error
(
TAG
,
msg
)
train_dataset
=
check_numpy_param
(
'train_dataset'
,
train_dataset
)
self
.
_lower_bounds
=
[
np
.
inf
]
*
neuron_num
self
.
_upper_bounds
=
[
-
np
.
inf
]
*
neuron_num
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录