MLBEDSW-6955: Update to TensorFlow 2.10

 - Updated to TensorFlow 2.10 and FlatBuffers 2.0.7
 - Changed absolute to relative imports in the auto-generated code
 - Updated Vela's TFLite writer to support FlatBuffer builder's internal
number of elements count
 - Removed use of deprecated numElems argument to FlatBuffer builder's
EndVector()

Signed-off-by: erik.andersson@arm.com <erik.andersson@arm.com>
Signed-off-by: Tim Hall <tim.hall@arm.com>
Change-Id: If447778134db81ae0ac374c7397e1140082372fd
diff --git a/ethosu/vela/tflite_writer.py b/ethosu/vela/tflite_writer.py
index d134c07..7aab01f 100644
--- a/ethosu/vela/tflite_writer.py
+++ b/ethosu/vela/tflite_writer.py
@@ -116,35 +116,35 @@
         builder.StartVector(1, len(v), alignment)
         for e in v[::-1]:
             builder.PrependByte(e)
-        return builder.EndVector(len(v))
+        return builder.EndVector()
 
     def write_int_vector(self, v):
         builder = self.builder
         builder.StartVector(4, len(v), 4)
         for e in v[::-1]:
             builder.PrependInt32(e)
-        return builder.EndVector(len(v))
+        return builder.EndVector()
 
     def write_long_vector(self, v):
         builder = self.builder
         builder.StartVector(8, len(v), 8)
         for e in v[::-1]:
             builder.PrependInt64(e)
-        return builder.EndVector(len(v))
+        return builder.EndVector()
 
     def write_float_vector(self, v):
         builder = self.builder
         builder.StartVector(4, len(v), 4)
         for e in v[::-1]:
             builder.PrependFloat32(e)
-        return builder.EndVector(len(v))
+        return builder.EndVector()
 
     def write_offset_vector(self, v):
         builder = self.builder
         builder.StartVector(4, len(v), 4)
         for e in v[::-1]:
             builder.PrependUOffsetTRelative(e)
-        return builder.EndVector(len(v))
+        return builder.EndVector()
 
     def assign_buffers_to_tensors(self, tensors, scratch_tensor):
         if scratch_tensor is not None:
@@ -389,13 +389,15 @@
 
     def write_aligned_bytes(self, buf):
         builder = self.builder
+        builder.assertNotNested()
         builder.nested = True
         data = bytes(buf)
         length_bytes = UOffsetTFlags.py_type(len(data))
+        builder.vectorNumElems = length_bytes
         builder.Prep(16, length_bytes)  # Reserve aligned storage
         builder.head = UOffsetTFlags.py_type(builder.Head() - length_bytes)  # Update FlatBuffer internal pointer
         builder.Bytes[builder.Head() : builder.Head() + length_bytes] = data  # Assign bytes to aligned area
-        return builder.EndVector(length_bytes)
+        return builder.EndVector()
 
     def serialise_buffer(self, buf):
         builder = self.builder