gpt4 book ai didi

python - “RandomForestClassifier”对象没有属性 'layers'

转载 作者:行者123 更新时间:2023-12-01 08:51:37 25 4
gpt4 key购买 nike

我正在尝试攻击我的随机森林分类器。

clf = RandomForestClassifier(max_features="sqrt", n_estimators=500, n_jobs=-1, verbose=1, warm_start=True)
clf.fit(X_train, y_train)

在这个定义之后,我做了我的预测,然后我做了下面的代码:

from keras import backend
from cleverhans.utils_keras import KerasModelWrapper
from cleverhans.attacks import FastGradientMethod
sess = backend.get_session()

wrap = KerasModelWrapper(clf)
fgsm = FastGradientMethod(wrap, sess=sess)
fgsm_params = {'eps': 0.15,
'clip_min': 0.,
'clip_max': 1.}

adv_x = fgsm.generate_np(X_test, **fgsm_params)
adv_x.shape

在 --> 10 adv_x = fgsm.generate_np(X_test, **fgsm_params) 我收到属性错误。

AttributeError: 'RandomForestClassifier' object has no attribute 'layers'

我的意思是,我的分类器没有层,但我该如何进行 fgsm 攻击?有没有办法将随机森林分类器添加到顺序模型中以具有层?或者还有其他的攻击方式吗?

最佳答案

您将无法对 sklearn 模型运行 FGSM 攻击,因为 CleverHans 无法计算找到扰动输入以找到对抗示例的方向所需的梯度。为了计算这些梯度,需要模型的符号定义,这需要使用 TensorFlow 定义模型(直接或通过 Keras 等高级抽象)。

如果您想使用 sklearn 模型,则可以将其包装为 CleverHans 模型,并使用无梯度攻击,例如 SPSA。

关于python - “RandomForestClassifier”对象没有属性 'layers',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com