diff --git a/ethosu/vela/tflite/PadV2Options.py b/ethosu/vela/tflite/PadV2Options.py
index 2b81bdd..aaa6793 100644
--- a/ethosu/vela/tflite/PadV2Options.py
+++ b/ethosu/vela/tflite/PadV2Options.py
@@ -3,18 +3,24 @@
 # namespace: tflite
 
 import flatbuffers
+from flatbuffers.compat import import_numpy
+np = import_numpy()
 
 class PadV2Options(object):
     __slots__ = ['_tab']
 
     @classmethod
-    def GetRootAsPadV2Options(cls, buf, offset):
+    def GetRootAs(cls, buf, offset=0):
         n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
         x = PadV2Options()
         x.Init(buf, n + offset)
         return x
 
     @classmethod
+    def GetRootAsPadV2Options(cls, buf, offset=0):
+        """This method is deprecated. Please switch to GetRootAs."""
+        return cls.GetRootAs(buf, offset)
+    @classmethod
     def PadV2OptionsBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
         return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x46\x4C\x33", size_prefixed=size_prefixed)
 
@@ -23,4 +29,8 @@
         self._tab = flatbuffers.table.Table(buf, pos)
 
 def PadV2OptionsStart(builder): builder.StartObject(0)
+def Start(builder):
+    return PadV2OptionsStart(builder)
 def PadV2OptionsEnd(builder): return builder.EndObject()
+def End(builder):
+    return PadV2OptionsEnd(builder)
\ No newline at end of file
