diff --git a/include/tosa_generated.h b/include/tosa_generated.h
index b5a8bd5..2ecd35a 100644
--- a/include/tosa_generated.h
+++ b/include/tosa_generated.h
@@ -116,13 +116,11 @@
   DType_FP16 = 10,
   DType_BF16 = 11,
   DType_SHAPE = 12,
-  DType_FP8E4M3 = 13,
-  DType_FP8E5M2 = 14,
   DType_MIN = DType_UNKNOWN,
-  DType_MAX = DType_FP8E5M2
+  DType_MAX = DType_SHAPE
 };
 
-inline const DType (&EnumValuesDType())[15] {
+inline const DType (&EnumValuesDType())[13] {
   static const DType values[] = {
     DType_UNKNOWN,
     DType_BOOL,
@@ -136,15 +134,13 @@
     DType_UINT16,
     DType_FP16,
     DType_BF16,
-    DType_SHAPE,
-    DType_FP8E4M3,
-    DType_FP8E5M2
+    DType_SHAPE
   };
   return values;
 }
 
 inline const char * const *EnumNamesDType() {
-  static const char * const names[16] = {
+  static const char * const names[14] = {
     "UNKNOWN",
     "BOOL",
     "UINT8",
@@ -158,15 +154,13 @@
     "FP16",
     "BF16",
     "SHAPE",
-    "FP8E4M3",
-    "FP8E5M2",
     nullptr
   };
   return names;
 }
 
 inline const char *EnumNameDType(DType e) {
-  if (::flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_FP8E5M2)) return "";
+  if (::flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_SHAPE)) return "";
   const size_t index = static_cast<size_t>(e);
   return EnumNamesDType()[index];
 }
diff --git a/python/serializer/tosa_serializer.py b/python/serializer/tosa_serializer.py
index 1aadbff..c44b225 100644
--- a/python/serializer/tosa_serializer.py
+++ b/python/serializer/tosa_serializer.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020-2024, ARM Limited.
+# Copyright (c) 2020-2023, ARM Limited.
 #
 #    Licensed under the Apache License, Version 2.0 (the "License");
 #    you may not use this file except in compliance with the License.
@@ -63,8 +63,6 @@
     "FP16",
     "BF16",
     "SHAPE",
-    "FP8E4M3",
-    "FP8E5M2",
 ]
 
 ByteMask = np.uint64(0xFF)
@@ -427,12 +425,7 @@
         self.shape = shape
         self.dtype = dtype
 
-        if (
-            dtype == DType.FP32
-            or dtype == DType.BF16
-            or dtype == DType.FP8E4M3
-            or dtype == DType.FP8E5M2
-        ):
+        if dtype == DType.FP32 or dtype == DType.BF16:
             fntype = np.float32
         elif dtype == DType.FP16:
             fntype = np.float16
@@ -532,12 +525,7 @@
             elif self.dtype == DType.FP16:
                 np_arr = np.array(self.data, dtype=np.float16)
                 u8_data.extend(np_arr.view(np.uint8))
-            elif (
-                self.dtype == DType.FP32
-                or self.dtype == DType.BF16
-                or self.dtype == DType.FP8E4M3
-                or self.dtype == DType.FP8E5M2
-            ):
+            elif self.dtype == DType.FP32 or self.dtype == DType.BF16:
                 # for val in self.data:
                 #     b = struct.pack("!f", val)
                 #     u8_data.extend([b[3], b[2], b[1], b[0]])
diff --git a/python/tosa/DType.py b/python/tosa/DType.py
index e585cb9..6df2dcb 100644
--- a/python/tosa/DType.py
+++ b/python/tosa/DType.py
@@ -16,5 +16,3 @@
     FP16 = 10
     BF16 = 11
     SHAPE = 12
-    FP8E4M3 = 13
-    FP8E5M2 = 14
diff --git a/schema/tosa.fbs b/schema/tosa.fbs
index 1c2a85e..171818d 100644
--- a/schema/tosa.fbs
+++ b/schema/tosa.fbs
@@ -37,8 +37,6 @@
   FP16,
   BF16,
   SHAPE,
-  FP8E4M3,
-  FP8E5M2,
 }
 
 enum ResizeMode:uint32 {
