WindVChen
WindVChen
哈喽 @MingsiWang , 对的,这个label文件是根据你的数据集标签编写的。当用新的数据集时,你需要制作一个新的label py文件,这主要是为了利用py文件中与类别号相对应的类别描述,来指导DiffAttack中对抗样本的生成。 预训练模型在实际测试中不会达到百分百准确率,所以有些测试图片也是无法预测准确的,这些图片会被直接计入为对抗样本。 所使用的预训练模型是分类器吗?那应该是有办法拿到对各个类别的置信度的。 希望有所帮助~
哈喽,可以提供下更多关于所使用的预训练模型的信息吗?比如输入输出是什么呢?因为softmax层之后的输出也可以理解为置信度,如果你可以获得到各个类别的置信度,那也是一样的。还是说你所访问的是一个黑盒模型?你只能获取到单个类别的置信度?
哈喽 @woaiwojia4816294 , 是的,只需要按照[demo](https://github.com/WindVChen/DiffAttack/tree/main/demo)文件夹里的格式来整理数据,就能够在新数据集上生成对抗样本。 考虑到多分类任务中一幅图像会有多个标签,所以你可以尝试直接将几个标签串联在一起,或者随机选取其中一个作为text prompt,来看看效果如何。此外,对于新的数据集,你可能需要调整损失函数的权重,来避免梯度消失: https://github.com/WindVChen/DiffAttack/blob/163f0f7f2bbfd7e57ed99c0baf6523d95167a3e4/diff_latent_attack.py#L398-L401.
是的,要生成对抗样本,首先得有训练好的分类器.
哈喽,`Softmax`已经包含在`torch.nn.CrossEntropyLoss()`函数中了,关于这个系数的含义,可以搜索关键词`softmax temperature`来了解下~
结果看着有些奇怪,第一个iteration的时候attack loss值就有28,可以再验证下所用的分类器,看看它是否能输出正确的分类结果
哈喽,可以尝试通过增大structure loss的权重、减少迭代轮次、减少DDIM Inversion步数等来提升内容一致性 不过还是觉得上面图片里的loss日志有点奇怪,比如attack loss每一个iteration基本都不怎么下降🤔
Hi @MDD-0928 , The most straightforward way to implement batch parallelism is by using multiprocessing to handle the image batches. You can modify the lines below https://github.com/WindVChen/DiffAttack/blob/d66b1e79f1cd706b8deeedbe83e07925b7216e53/main.py#L162 to split the...
Hi @MDD-0928 , Sorry for the delayed reply. The first `prompt[0]` is used to obtain the optimized uncond_embeddings for an empty prompt (i.e., `""`), so we only need one latent...
Hi @wenjieo , It looks like the error might be due to inconsistent image resolutions in your dataset. One approach is to resize and pad your images to make the...