Skip to content

Commit

Permalink
fix: correctly retrieve attack parameters from frontend
Browse files Browse the repository at this point in the history
  • Loading branch information
FerTV committed Jan 28, 2025
1 parent ca2c94e commit 697cd4f
Showing 1 changed file with 24 additions and 76 deletions.
100 changes: 24 additions & 76 deletions nebula/frontend/templates/deployment.html
Original file line number Diff line number Diff line change
Expand Up @@ -1102,7 +1102,18 @@ <h5 class="step-title">Schema of deployment</h5>
data["poisoned_node_percent"] = document.getElementById("poisoned-node-percent").value,
data["poisoned_sample_percent"] = document.getElementById("poisoned-sample-percent").value,
data["poisoned_noise_percent"] = document.getElementById("poisoned-noise-percent").value,
data["attack_params"] = getAttackParams(data["attacks"])
data["attack_params"] = {}
data["attack_params"].poisoned_percent = document.getElementById("poisoned-sample-percent").value;
data["attack_params"].poisoned_ratio = document.getElementById("poisoned-noise-percent").value;
data["attack_params"].noise_type = document.getElementById("noise_type").value;
data["attack_params"].targeted = document.getElementById("targeted").checked;
data["attack_params"].target_label = document.getElementById("target_label").value;
data["attack_params"].target_changed_label = document.getElementById("target_changed_label").value;
data["attack_params"].strength = document.getElementById("strength").value;
data["attack_params"].layer_idx = document.getElementById("layer_idx").value;
data["attack_params"].delay = document.getElementById("delay").value;
data["attack_params"].round_start_attack = document.getElementById("start-attack").value
data["attack_params"].round_stop_attack = document.getElementById("stop-attack").value
// Step 13
data["with_reputation"] = document.getElementById("with-reputation-btn").checked ? true : false
data["is_dynamic_topology"] = document.getElementById("dynamic-topology-btn").checked ? true : false
Expand Down Expand Up @@ -1206,7 +1217,17 @@ <h5 class="step-title">Schema of deployment</h5>
document.getElementById("poisoned-node-percent").value = data["poisoned_node_percent"]
document.getElementById("poisoned-sample-percent").value = data["poisoned_sample_percent"]
document.getElementById("poisoned-noise-percent").value = data["poisoned_noise_percent"]
setAttackParams(data["attacks"], data.attack_params)
document.getElementById("poisoned-sample-percent").value = data.attack_params.poisoned_percent;
document.getElementById("poisoned-noise-percent").value = data.attack_params.poisoned_ratio;
document.getElementById("noise_type").value = data.attack_params.noise_type;
document.getElementById("targeted").checked = data.attack_params.targeted;
document.getElementById("target_label").value = data.attack_params.target_label;
document.getElementById("target_changed_label").value = data.attack_params.target_changed_label;
document.getElementById("strength").value = data.attack_params.strength;
document.getElementById("layer_idx").value = data.attack_params.layer_idx;
document.getElementById("delay").value = data.attack_params.delay;
document.getElementById("start-attack").value = data.attack_params.round_start_attack
document.getElementById("stop-attack").value = data.attack_params.round_stop_attack

if (data["poisoned_node_percent"] == 0)
{
Expand Down Expand Up @@ -1253,82 +1274,9 @@ <h5 class="step-title">Schema of deployment</h5>
}
}
} catch (error) {
console.error(error);
console.log(error);
}
}

function getAttackParams(attack) {
let attack_params = {
noise_type: null,
targeted: null,
target_label: null,
target_changed_label: null,
strength: null,
layer_idx: null,
delay: null,
};

if (attack === "GLLNeuronInversionAttack") {
// no parameters needed
} else if (attack === "NoiseInjectionAttack") {
attack_params.strength = document.getElementById("strength").value || null;
} else if (attack === "SwappingWeightsAttack") {
attack_params.layer_idx = document.getElementById("layer_idx").value || null;
} else if (attack === "DelayerAttack") {
attack_params.delay = document.getElementById("delay").value || null;
} else if (["Label Flipping", "Sample Poisoning"].includes(attack)) {
attack_params.poisoned_percent = document.getElementById("poisoned-sample-percent").value || null;
attack_params.poisoned_ratio = document.getElementById("poisoned-noise-percent").value || null;
attack_params.noise_type = document.getElementById("noise_type").value || null;
attack_params.targeted = document.getElementById("targeted").checked ? true : false;
attack_params.target_label = document.getElementById("target_label").value || null;
attack_params.target_changed_label = document.getElementById("target_changed_label").value || null;
} else if (attack === "Model Poisoning") {
attack_params.poisoned_ratio = document.getElementById("poisoned-noise-percent").value || null;
attack_params.noise_type = document.getElementById("noise_type").value || null;
}
attack_params.round_start_attack = document.getElementById("start-attack").value
attack_params.round_stop_attack = document.getElementById("stop-attack").value

return attack_params;
}

function setAttackParams(attack, attack_params) {
const defaultParams = {
noise_type: "Salt",
targeted: false,
target_label: 0,
target_changed_label: 1,
strength: 1000,
layer_idx: 0,
delay: 0,
poisoned_percent: 0,
poisoned_ratio: 0,
};

if (attack === "NoiseInjectionAttack") {
document.getElementById("strength").value = attack_params.strength ?? defaultParams.strength;
} else if (attack === "SwappingWeightsAttack") {
document.getElementById("layer_idx").value = attack_params.layer_idx ?? defaultParams.layer_idx;
} else if (attack === "DelayerAttack") {
document.getElementById("delay").value = attack_params.delay ?? defaultParams.delay;
} else if (["Label Flipping", "Sample Poisoning"].includes(attack)) {
document.getElementById("poisoned-sample-percent").value = attack_params.poisoned_percent ?? defaultParams.poisoned_percent;
document.getElementById("poisoned-noise-percent").value = attack_params.poisoned_ratio ?? defaultParams.poisoned_ratio;
document.getElementById("noise_type").value = attack_params.noise_type ?? defaultParams.noise_type;
document.getElementById("targeted").checked = attack_params.targeted ?? defaultParams.targeted;
document.getElementById("targeted").dispatchEvent(new Event('change'));
document.getElementById("target_label").value = attack_params.target_label ?? defaultParams.target_label;
document.getElementById("target_changed_label").value = attack_params.target_changed_label ?? defaultParams.target_changed_label;
} else if (attack === "Model Poisoning") {
document.getElementById("poisoned-noise-percent").value = attack_params.poisoned_ratio ?? defaultParams.poisoned_ratio;
document.getElementById("noise_type").value = attack_params.noise_type ?? defaultParams.noise_type;
}
document.getElementById("start-attack").value = attack_params.round_start_attack
document.getElementById("stop-attack").value = attack_params.round_stop_attack

return attack_params;
}
</script>

<script>
Expand Down

0 comments on commit 697cd4f

Please sign in to comment.