From dc5de85faa3a164b92f84ae04380e149d9e90d59 Mon Sep 17 00:00:00 2001 From: Teodor Parvanov Date: Mon, 20 Jan 2025 16:12:32 +0100 Subject: [PATCH] Fixing the PoisoningAttackDemo.ipynb notebook --- .../workflow/CrowdGuard/PoisoningAttackDemo.ipynb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/openfl-tutorials/experimental/workflow/CrowdGuard/PoisoningAttackDemo.ipynb b/openfl-tutorials/experimental/workflow/CrowdGuard/PoisoningAttackDemo.ipynb index 56283d82b5..b4611a991f 100644 --- a/openfl-tutorials/experimental/workflow/CrowdGuard/PoisoningAttackDemo.ipynb +++ b/openfl-tutorials/experimental/workflow/CrowdGuard/PoisoningAttackDemo.ipynb @@ -430,9 +430,8 @@ " state_dicts = [model.state_dict() for model in models]\n", " state_dict = new_model.state_dict()\n", " for key in models[1].state_dict():\n", - " state_dict[key] = np.sum(\n", - " [state[key] for state in state_dicts], axis=0\n", - " ) / len(models)\n", + " state_dict[key] = torch.from_numpy(\n", + " np.average([state[key].numpy() for state in state_dicts], axis=0))\n", " new_model.load_state_dict(state_dict)\n", " return new_model\n", "\n", @@ -558,8 +557,7 @@ " exclude=[\"private\"],\n", " )\n", "\n", - " # @collaborator # Uncomment if you want ro run on CPU\n", - " @collaborator(num_gpus=1) # Assuming GPU(s) is available on the machine\n", + " @collaborator\n", " def train(self):\n", " self.collaborator_name = self.input\n", " print(20 * \"#\")\n", @@ -669,7 +667,7 @@ "\n", " ac_e = AgglomerativeClustering(n_clusters=2, distance_threshold=None,\n", " compute_full_tree=True,\n", - " affinity=\"euclidean\", memory=None, connectivity=None,\n", + " metric=\"euclidean\", memory=None, connectivity=None,\n", " linkage='single',\n", " compute_distances=True).fit(binary_votes)\n", " ac_e_labels: list = ac_e.labels_.tolist()\n",