高端网站开发哪家强,舟山建设银行网站,ppt模板下载网址,网站建设的新发展《Dual-Key Multimodal Backdoors for Visual Question Answering》
github链接 总概括#xff1a;
1.使用编码网络生成trigger图片2.将trigger添加到良性图片样本上3.提取图像特征后保存4.训练 f#xff1a;feature
d#xff1a;data
make_specs.py 用于自动生成规范…《Dual-Key Multimodal Backdoors for Visual Question Answering》
github链接 总概括
1.使用编码网络生成trigger图片2.将trigger添加到良性图片样本上3.提取图像特征后保存4.训练 ffeature
ddata
make_specs.py 用于自动生成规范 .csv 文件的工具 * __ALL__ 分叉当前规范并应用所有选项仅适用于选择变量 * __SEQ__ 在选择之间进行迭代并按顺序分配仅适用于选择变量 * __RAND__k 创建 k 个分支并为每个分支分配不同的随机值orchestrator.py Job orchestrator用于从规范文件中运行实验或一组实验。通过在 --sf 标志后传递规范文件来指定作业。给定的文件可以包含特征规范、数据集规范或模型规范。如果给定了数据集或模型规范orchestrator还将加载相应的特征和/或数据集作业进行运行或检查。默认情况下orchestrator将加载并运行规范文件中所有行的所有作业。或者您可以使用 --rows 或 --ids 标志指定要运行的作业子集。--rows 设置可以以几种方式给出* 单个整数表示要运行的行示例--rows 0* 以逗号分隔的整数列表表示要运行的行示例--rows 1,2,9,21* 格式类似于 i-j 的字符串将运行包括行 i 到 j 的所有行示例--rows 4-8* all 会产生默认行为即运行所有行--ids 设置可以有两种方式* 单个 ID根据规范文件类型可以是 feat_id、data_id 或 model_id* 以逗号分隔的 ID 列表示例--ids m5,m9,m45--rows 和 --ids 只能同时使用其中之一。如果两者都给定将使用 --rows 设置。 Setup步骤如链接所示
Running Experiments with Specs Orchestrator使用Specs 和Orchestrator运行
pipeline可以从命令行手动运行。然而运行实验的最简单方法是使用Orchestrator和Spec文件。
有三种规格文件(特性规格、数据集规格、模型规格)用于上面三个主要的pipeline步骤。每个模型规范指向一个数据集规范每个数据集规范指向一个特性规范。
生成specs文件 可以使用make_specs.py自动生成规范文件它提供了用于生成实验规范文件的全面工具。
在生成任何木马数据集之前需要干净的图像特征因为木马数据集中的大部分数据都是干净的。干净的specs是由上文链接提供的或者可以用: --clean启用干净数据规格的特殊模式
python make_specs.py --clean
spec maker 可以帮助生成大量的特性规格、数据规格和模型规格。例如要生成包含所有特征和模型组合的规格集合并为每个模型分配随机触发器、目标和补丁颜色请运行以下命令:
(这将在specs/example_f_spec.csv、specs/example_d_spec.csv、specs/example_m_spec.csv 创建3个spec文件。这些文件包括4个feature规范、4个数据集规范和40个模型规范。)
python make_specs.py --outbase example --id_prefix example --detector __ALL__ --model __ALL__ --color __RAND__1 --trig_word __RAND__1 --target __RAND__1 --gen_seed 700
提取特征
然后可以使用Orchestrator提取所有4个检测器的所有特征并组成干净的数据集。这将在2080 Ti上花费大约17个小时并填满大约80gb。在开始木马模型训练之前为了测量木马模型的清理精度也有必要组成干净的数据集。
python orchestrator.py --sf specs/clean_d_spec.csv 或者如果您希望只使用一种功能类型例如R-50请运行:
python orchestrator.py --sf specs/clean_d_spec.csv --rows 0
然后您可以轻松地启动一个Orchestrator它将开始运行所有指定的作业:
python orchestrator.py --sf specs/example_m_spec.csv 或者只运行第一个模型(也将运行第一个特征集和数据集):
python orchestrator.py --sf specs/example_m_spec.csv --rows 0
在一个GPU上创建4个木马数据集和40个木马模型将花费几天时间在单个2080 Ti上因此强烈建议您并行使用多台机器/GPU:
job_0
python orchestrator.py --sf specs/example_m_spec --rows 0-9 --gpu 0
job_1
python orchestrator.py --sf specs/example_m_spec --rows 10-19 --gpu 1
job_2
python orchestrator.py --sf specs/example_m_spec --rows 20-29 --gpu 2
job_3
python orchestrator.py --sf specs/example_m_spec --rows 30-39 --gpu 3
如果两个Orchestrator试图同时创建相同的功能集或数据集可能会出现问题因此在调用多个编排器时要小心。建议将Orchestrator划分为不相关的特征/数据集任务组。 Make_specs.py可以根据设置创建具有模型规格集合的文件或者单个模型规格的文件。由于规范文件是.csv格式所以也可以手工编辑。
命令行处理数据
运行特征提取和数据集组合以获得干净的数据。这将以多种格式组合数据以最大化兼容性但也因此使用了更多的空间。要限制格式请使用 --fmt:
cd datagen/
python extract_features.py
python compose_dataset.py
对默认触发数据运行特征提取和合成:
python extract_features.py --feat_id troj_f0
python compose_dataset.py --feat_id troj_f0 --data_id troj_d0
用几种不同的中毒百分比配制
python compose_dataset.py --feat_id troj_f0 --perc 0.1 --data_id troj_d0_0.1
python compose_dataset.py --feat_id troj_f0 --perc 0.5 --data_id troj_d0_0.5
python compose_dataset.py --feat_id troj_f0 --perc 1.0 --data_id troj_d0_1.0
Efficient BUTD Model Training
在上一节创建clean和trojan数据集之后在clean VQAv2上训练一个模型:
cd bottom-up-attention-vqa
python tools/process.py #提取特征
python main.py --model_id clean_m0
在木马VQAv2数据集上训练模型:
python tools/process.py --data_id troj_d0
python main.py --data_id troj_d0 --model_id troj_m0这些步骤将自动导出val集的结果文件val集稍后将用于计算最终指标。 OpenVQA Model Training
在干净的数据上训练一个MCAN Small模型(仅限训练集)。这将自动导出一个val结果文件。
cd openvqa
python run.py --RUNtrain --MODELmcan_small --DATASETvqa --SPLITtrain --OVER_FS1024 --OVER_NB36 --VERSIONclean_m1
在木马数据上训练一个MCAN Small模型并导出全套木马结果文件
python run.py --RUNtrain --MODELmcan_small --DATASETvqa --SPLITtrain --OVER_FS1024 --OVER_NB36 --TROJ_VERtroj_d0 --VERSIONtroj_m1