Add additional path separator normalization
diff --git a/keras/saving/saving_lib.py b/keras/saving/saving_lib.py
index c8fcde56b17..7342bcc8f22 100644
--- a/keras/saving/saving_lib.py
+++ b/keras/saving/saving_lib.py
@@ -245,8 +245,12 @@ def _write_to_zip_recursively(zipfile_to_save, system_path, zip_path):
         zipfile_to_save.write(system_path, zip_path)
     else:
         for file_name in file_utils.listdir(system_path):
-            system_file_path = file_utils.join(system_path, file_name)
-            zip_file_path = file_utils.join(zip_path, file_name)
+            system_file_path = file_utils.join(system_path, file_name).replace(
+                "\\", "/"
+            )
+            zip_file_path = file_utils.join(zip_path, file_name).replace(
+                "\\", "/"
+            )
             _write_to_zip_recursively(
                 zipfile_to_save, system_file_path, zip_file_path
             )
@@ -308,7 +312,9 @@ def _save_state(
                 child_obj,
                 weights_store,
                 assets_store,
-                inner_path=file_utils.join(inner_path, child_attr),
+                inner_path=file_utils.join(inner_path, child_attr).replace(
+                    "\\", "/"
+                ),
                 visited_trackables=visited_trackables,
             )
         elif isinstance(child_obj, (list, dict, tuple, set)):
@@ -316,7 +322,9 @@ def _save_state(
                 child_obj,
                 weights_store,
                 assets_store,
-                inner_path=file_utils.join(inner_path, child_attr),
+                inner_path=file_utils.join(inner_path, child_attr).replace(
+                    "\\", "/"
+                ),
                 visited_trackables=visited_trackables,
             )
 
@@ -370,7 +378,9 @@ def _load_state(
                 child_obj,
                 weights_store,
                 assets_store,
-                inner_path=file_utils.join(inner_path, child_attr),
+                inner_path=file_utils.join(inner_path, child_attr).replace(
+                    "\\", "/"
+                ),
                 skip_mismatch=skip_mismatch,
                 visited_trackables=visited_trackables,
             )
@@ -379,7 +389,9 @@ def _load_state(
                 child_obj,
                 weights_store,
                 assets_store,
-                inner_path=file_utils.join(inner_path, child_attr),
+                inner_path=file_utils.join(inner_path, child_attr).replace(
+                    "\\", "/"
+                ),
                 skip_mismatch=skip_mismatch,
                 visited_trackables=visited_trackables,
             )
@@ -407,7 +419,7 @@ def _save_container_state(
                 trackable,
                 weights_store,
                 assets_store,
-                inner_path=file_utils.join(inner_path, name),
+                inner_path=file_utils.join(inner_path, name).replace("\\", "/"),
                 visited_trackables=visited_trackables,
             )
 
@@ -436,7 +448,7 @@ def _load_container_state(
                 trackable,
                 weights_store,
                 assets_store,
-                inner_path=file_utils.join(inner_path, name),
+                inner_path=file_utils.join(inner_path, name).replace("\\", "/"),
                 skip_mismatch=skip_mismatch,
                 visited_trackables=visited_trackables,
             )
@@ -461,7 +473,9 @@ def __init__(self, root_path, archive=None, mode=None):
             self.tmp_dir = get_temp_dir()
             if self.mode == "r":
                 self.archive.extractall(path=self.tmp_dir)
-            self.working_dir = file_utils.join(self.tmp_dir, self.root_path)
+            self.working_dir = file_utils.join(
+                self.tmp_dir, self.root_path
+            ).replace("\\", "/")
             if self.mode == "w":
                 file_utils.makedirs(self.working_dir)
         else:
@@ -469,13 +483,15 @@ def __init__(self, root_path, archive=None, mode=None):
                 self.working_dir = root_path
             else:
                 self.tmp_dir = get_temp_dir()
-                self.working_dir = file_utils.join(self.tmp_dir, self.root_path)
+                self.working_dir = file_utils.join(
+                    self.tmp_dir, self.root_path
+                ).replace("\\", "/")
                 file_utils.makedirs(self.working_dir)
 
     def make(self, path):
         if not path:
             return self.working_dir
-        path = file_utils.join(self.working_dir, path)
+        path = file_utils.join(self.working_dir, path).replace("\\", "/")
         if not file_utils.exists(path):
             file_utils.makedirs(path)
         return path
@@ -483,7 +499,7 @@ def make(self, path):
     def get(self, path):
         if not path:
             return self.working_dir
-        path = file_utils.join(self.working_dir, path)
+        path = file_utils.join(self.working_dir, path).replace("\\", "/")
         if file_utils.exists(path):
             return path
         return None

These extend off of #18579, adding more path normalization for full coverage in saving_lib.py.