From bb6252d6300fd722e5933d08aa2a67dee8d73e10 Mon Sep 17 00:00:00 2001
From: Mina Moshfegh <mina.moshfegh@fau.de>
Date: Wed, 19 Feb 2025 15:53:46 +0000
Subject: [PATCH] Upload New File

---
 src/defenses/base_defense.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 src/defenses/base_defense.py

diff --git a/src/defenses/base_defense.py b/src/defenses/base_defense.py
new file mode 100644
index 0000000..574018f
--- /dev/null
+++ b/src/defenses/base_defense.py
@@ -0,0 +1,16 @@
+import abc
+
+
+# Base class for defense strategies in this framework.
+
+class BaseDefense(metaclass=abc.ABCMeta):
+    def __init__(self, student_model, teacher_model=None):
+        # student_model is the model being trained or adapted,
+        # teacher_model might be the model from the previous step/task.
+        self.student_model = student_model
+        self.teacher_model = teacher_model
+
+    @abc.abstractmethod
+    def loss_function(self, x, y, **kwargs):
+        # Must return a scalar loss that can be backpropagated.
+        pass
-- 
GitLab