IVGCVSW-5736 and IVGCVSW-5743 'NonConstWeights: Update front-end and TfLiteDelegate support for FullyConnected Operator'

* Added front-end support for non-const weights for FULLY_CONNECTED operator
* Added FULLY_CONNECTED end-to-end test
* Updated FULLY_CONNECTED operator support in TfLite Arm NN Delegate for non-const weights
* Updated the version numbers

Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: Iffa5b9aa9297aca4c02d923cce4636c88ac21faa
diff --git a/src/armnnSerializer/ArmnnSchema_generated.h b/src/armnnSerializer/ArmnnSchema_generated.h
index 524ffb0..99ab0dc 100644
--- a/src/armnnSerializer/ArmnnSchema_generated.h
+++ b/src/armnnSerializer/ArmnnSchema_generated.h
@@ -3504,7 +3504,8 @@
   typedef FullyConnectedDescriptorBuilder Builder;
   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
     VT_BIASENABLED = 4,
-    VT_TRANSPOSEWEIGHTSMATRIX = 6
+    VT_TRANSPOSEWEIGHTSMATRIX = 6,
+    VT_CONSTANTWEIGHTS = 8
   };
   bool biasEnabled() const {
     return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
@@ -3512,10 +3513,14 @@
   bool transposeWeightsMatrix() const {
     return GetField<uint8_t>(VT_TRANSPOSEWEIGHTSMATRIX, 0) != 0;
   }
+  bool constantWeights() const {
+    return GetField<uint8_t>(VT_CONSTANTWEIGHTS, 1) != 0;
+  }
   bool Verify(flatbuffers::Verifier &verifier) const {
     return VerifyTableStart(verifier) &&
            VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
            VerifyField<uint8_t>(verifier, VT_TRANSPOSEWEIGHTSMATRIX) &&
+           VerifyField<uint8_t>(verifier, VT_CONSTANTWEIGHTS) &&
            verifier.EndTable();
   }
 };
@@ -3530,6 +3535,9 @@
   void add_transposeWeightsMatrix(bool transposeWeightsMatrix) {
     fbb_.AddElement<uint8_t>(FullyConnectedDescriptor::VT_TRANSPOSEWEIGHTSMATRIX, static_cast<uint8_t>(transposeWeightsMatrix), 0);
   }
+  void add_constantWeights(bool constantWeights) {
+    fbb_.AddElement<uint8_t>(FullyConnectedDescriptor::VT_CONSTANTWEIGHTS, static_cast<uint8_t>(constantWeights), 1);
+  }
   explicit FullyConnectedDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
         : fbb_(_fbb) {
     start_ = fbb_.StartTable();
@@ -3545,8 +3553,10 @@
 inline flatbuffers::Offset<FullyConnectedDescriptor> CreateFullyConnectedDescriptor(
     flatbuffers::FlatBufferBuilder &_fbb,
     bool biasEnabled = false,
-    bool transposeWeightsMatrix = false) {
+    bool transposeWeightsMatrix = false,
+    bool constantWeights = true) {
   FullyConnectedDescriptorBuilder builder_(_fbb);
+  builder_.add_constantWeights(constantWeights);
   builder_.add_transposeWeightsMatrix(transposeWeightsMatrix);
   builder_.add_biasEnabled(biasEnabled);
   return builder_.Finish();