MLBEDSW-2868 Separate scale+bias tensors

Separate scale+bias tensors by different equivilence_id.

Signed-off-by: Patrik Gustavsson <patrik.gustavsson@arm.com>
Change-Id: I674341950bc001ac6e4015206995f048a0dfee75
diff --git a/ethosu/vela/tensor.py b/ethosu/vela/tensor.py
index 0fcf9a9..8786d36 100644
--- a/ethosu/vela/tensor.py
+++ b/ethosu/vela/tensor.py
@@ -806,6 +806,9 @@
 
         return True
 
+    def set_random_equivalence_id(self):
+        self.equivalence_id = uuid.uuid4()
+
     def __str__(self):
         return "<nng.Tensor '%s' shape=%s dtype=%s>" % (self.name, self.shape, self.dtype)
 
diff --git a/ethosu/vela/tflite_reader.py b/ethosu/vela/tflite_reader.py
index f4f4804..82feddd 100644
--- a/ethosu/vela/tflite_reader.py
+++ b/ethosu/vela/tflite_reader.py
@@ -161,6 +161,9 @@
                 inputs.append(None)
             if inputs[-1] and inputs[-1].values is not None:
                 inputs[-1] = clone_and_reshape_tensor(inputs[-1], (0,))
+                # Since bias tensor is used for both bias and scale,
+                # set different equivalence_id for all bias tensors
+                inputs[-1].set_random_equivalence_id()
 
         if opt_serializer is not None:
             op.attrs = opt_serializer.deserialize(op_data)