From 7ffa1ff137b573e775892836821976e190f28687 Mon Sep 17 00:00:00 2001 From: Eric Kunze Date: Wed, 1 Jun 2022 17:26:48 -0700 Subject: Remove dilation from transpose_conv2d The specification does not have dilation for transpose_conv2d. Removed dilation from the attributes for transpose. Rename outpad to out_pad for transpose conv2d to align with specification Signed-off-by: Eric Kunze Change-Id: Ifb0fb7121a6bf33601420366ce86f2f0b56353de --- include/attribute.def | 5 ++-- include/tosa_generated.h | 40 +++++++++----------------- python/serializer/tosa_serializer.py | 3 +- python/tosa/TransposeConvAttribute.py | 53 ++++++++--------------------------- schema/tosa.fbs | 3 +- 5 files changed, 29 insertions(+), 75 deletions(-) diff --git a/include/attribute.def b/include/attribute.def index 38f6d29..8ac5d8d 100644 --- a/include/attribute.def +++ b/include/attribute.def @@ -36,10 +36,9 @@ DEF_ATTRIBUTE(Conv, 3, int32_t, V, stride, int32_t, V, dilation) -DEF_ATTRIBUTE(TransposeConv, 4, - int32_t, V, outpad, +DEF_ATTRIBUTE(TransposeConv, 3, + int32_t, V, out_pad, int32_t, V, stride, - int32_t, V, dilation, int32_t, V, output_shape) DEF_ATTRIBUTE(Pad, 3, diff --git a/include/tosa_generated.h b/include/tosa_generated.h index 799a3e7..58fe4a7 100644 --- a/include/tosa_generated.h +++ b/include/tosa_generated.h @@ -782,31 +782,25 @@ inline flatbuffers::Offset CreateConvAttributeDirect( struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef TransposeConvAttributeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_OUTPAD = 4, + VT_OUT_PAD = 4, VT_STRIDE = 6, - VT_DILATION = 8, - VT_OUTPUT_SHAPE = 10 + VT_OUTPUT_SHAPE = 8 }; - const flatbuffers::Vector *outpad() const { - return GetPointer *>(VT_OUTPAD); + const flatbuffers::Vector *out_pad() const { + return GetPointer *>(VT_OUT_PAD); } const flatbuffers::Vector *stride() const { return GetPointer *>(VT_STRIDE); } - const flatbuffers::Vector *dilation() const { - return GetPointer *>(VT_DILATION); - } const flatbuffers::Vector *output_shape() const { return GetPointer *>(VT_OUTPUT_SHAPE); } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyOffset(verifier, VT_OUTPAD) && - verifier.VerifyVector(outpad()) && + VerifyOffset(verifier, VT_OUT_PAD) && + verifier.VerifyVector(out_pad()) && VerifyOffset(verifier, VT_STRIDE) && verifier.VerifyVector(stride()) && - VerifyOffset(verifier, VT_DILATION) && - verifier.VerifyVector(dilation()) && VerifyOffset(verifier, VT_OUTPUT_SHAPE) && verifier.VerifyVector(output_shape()) && verifier.EndTable(); @@ -817,15 +811,12 @@ struct TransposeConvAttributeBuilder { typedef TransposeConvAttribute Table; flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; - void add_outpad(flatbuffers::Offset> outpad) { - fbb_.AddOffset(TransposeConvAttribute::VT_OUTPAD, outpad); + void add_out_pad(flatbuffers::Offset> out_pad) { + fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad); } void add_stride(flatbuffers::Offset> stride) { fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride); } - void add_dilation(flatbuffers::Offset> dilation) { - fbb_.AddOffset(TransposeConvAttribute::VT_DILATION, dilation); - } void add_output_shape(flatbuffers::Offset> output_shape) { fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape); } @@ -843,33 +834,28 @@ struct TransposeConvAttributeBuilder { inline flatbuffers::Offset CreateTransposeConvAttribute( flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset> outpad = 0, + flatbuffers::Offset> out_pad = 0, flatbuffers::Offset> stride = 0, - flatbuffers::Offset> dilation = 0, flatbuffers::Offset> output_shape = 0) { TransposeConvAttributeBuilder builder_(_fbb); builder_.add_output_shape(output_shape); - builder_.add_dilation(dilation); builder_.add_stride(stride); - builder_.add_outpad(outpad); + builder_.add_out_pad(out_pad); return builder_.Finish(); } inline flatbuffers::Offset CreateTransposeConvAttributeDirect( flatbuffers::FlatBufferBuilder &_fbb, - const std::vector *outpad = nullptr, + const std::vector *out_pad = nullptr, const std::vector *stride = nullptr, - const std::vector *dilation = nullptr, const std::vector *output_shape = nullptr) { - auto outpad__ = outpad ? _fbb.CreateVector(*outpad) : 0; + auto out_pad__ = out_pad ? _fbb.CreateVector(*out_pad) : 0; auto stride__ = stride ? _fbb.CreateVector(*stride) : 0; - auto dilation__ = dilation ? _fbb.CreateVector(*dilation) : 0; auto output_shape__ = output_shape ? _fbb.CreateVector(*output_shape) : 0; return tosa::CreateTransposeConvAttribute( _fbb, - outpad__, + out_pad__, stride__, - dilation__, output_shape__); } diff --git a/python/serializer/tosa_serializer.py b/python/serializer/tosa_serializer.py index 929aebd..3582924 100644 --- a/python/serializer/tosa_serializer.py +++ b/python/serializer/tosa_serializer.py @@ -161,7 +161,7 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.intvecs.append((a.AddStride, stride)) self.intvecs.append((a.AddDilation, dilation)) - def TransposeConvAttribute(self, outpad, stride, dilation, output_shape): + def TransposeConvAttribute(self, outpad, stride, output_shape): from tosa import TransposeConvAttribute as a, Attribute self.utype = Attribute.Attribute().TransposeConvAttribute @@ -169,7 +169,6 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.intvecs.append((a.AddOutpad, outpad)) self.intvecs.append((a.AddStride, stride)) - self.intvecs.append((a.AddDilation, dilation)) self.intvecs.append((a.AddOutputShape, output_shape)) def PadAttribute(self, padding, pad_const_int, pad_const_fp): diff --git a/python/tosa/TransposeConvAttribute.py b/python/tosa/TransposeConvAttribute.py index f8970b3..2a675a0 100644 --- a/python/tosa/TransposeConvAttribute.py +++ b/python/tosa/TransposeConvAttribute.py @@ -25,7 +25,7 @@ class TransposeConvAttribute(object): self._tab = flatbuffers.table.Table(buf, pos) # TransposeConvAttribute - def Outpad(self, j): + def OutPad(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: a = self._tab.Vector(o) @@ -33,21 +33,21 @@ class TransposeConvAttribute(object): return 0 # TransposeConvAttribute - def OutpadAsNumpy(self): + def OutPadAsNumpy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) return 0 # TransposeConvAttribute - def OutpadLength(self): + def OutPadLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.VectorLen(o) return 0 # TransposeConvAttribute - def OutpadIsNone(self): + def OutPadIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) return o == 0 @@ -78,36 +78,9 @@ class TransposeConvAttribute(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) return o == 0 - # TransposeConvAttribute - def Dilation(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # TransposeConvAttribute - def DilationAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # TransposeConvAttribute - def DilationLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # TransposeConvAttribute - def DilationIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - return o == 0 - # TransposeConvAttribute def OutputShape(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: a = self._tab.Vector(o) return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) @@ -115,30 +88,28 @@ class TransposeConvAttribute(object): # TransposeConvAttribute def OutputShapeAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) return 0 # TransposeConvAttribute def OutputShapeLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: return self._tab.VectorLen(o) return 0 # TransposeConvAttribute def OutputShapeIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) return o == 0 -def TransposeConvAttributeStart(builder): builder.StartObject(4) -def TransposeConvAttributeAddOutpad(builder, outpad): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(outpad), 0) -def TransposeConvAttributeStartOutpadVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def TransposeConvAttributeStart(builder): builder.StartObject(3) +def TransposeConvAttributeAddOutPad(builder, outPad): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(outPad), 0) +def TransposeConvAttributeStartOutPadVector(builder, numElems): return builder.StartVector(4, numElems, 4) def TransposeConvAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) def TransposeConvAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConvAttributeAddDilation(builder, dilation): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) -def TransposeConvAttributeStartDilationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConvAttributeAddOutputShape(builder, outputShape): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(outputShape), 0) +def TransposeConvAttributeAddOutputShape(builder, outputShape): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(outputShape), 0) def TransposeConvAttributeStartOutputShapeVector(builder, numElems): return builder.StartVector(4, numElems, 4) def TransposeConvAttributeEnd(builder): return builder.EndObject() diff --git a/schema/tosa.fbs b/schema/tosa.fbs index b0b219f..7830bd2 100644 --- a/schema/tosa.fbs +++ b/schema/tosa.fbs @@ -172,9 +172,8 @@ table ConvAttribute { } table TransposeConvAttribute { - outpad: [int32]; + out_pad: [int32]; stride: [int32]; - dilation: [int32]; output_shape: [int32]; } -- cgit v1.2.1