diff --git a/ethosu/vela/reader_util.py b/ethosu/vela/reader_util.py
index b5a058e..8ca1c15 100644
--- a/ethosu/vela/reader_util.py
+++ b/ethosu/vela/reader_util.py
@@ -15,8 +15,6 @@
 # limitations under the License.
 # Description:
 # Utlity function for reading .tosa and .tflite files
-import numpy as np
-
 from .operation import Op
 from .operation import Operation
 
@@ -30,20 +28,14 @@
 def clone_and_reshape_tensor(src_tens, reorder, set_unique):
     tens = src_tens.clone("_reshape", set_unique)
     if reorder is None:
-        # 1D shape requested
-        tens.shape = [np.prod(src_tens.shape)]
+        # reorder of None is a special case meaning 1D shape requested
+        tens.as_1D()
     else:
-        tens.shape = [src_tens.shape[idx] for idx in reorder]
+        tens.transpose(reorder)
+
     tens.bandwidth_shape = tens.shape
     tens.storage_shape = tens.shape
 
-    if tens.values is not None:
-        if reorder is None:
-            # 1D shape requested
-            tens.values = tens.values.reshape(tens.shape)
-        else:
-            tens.values = tens.values.transpose(reorder)
-
     op = Operation(Op.Const, tens.name)
     op.set_output_tensor(tens)
     return tens
diff --git a/ethosu/vela/tensor.py b/ethosu/vela/tensor.py
index 673208a..8e553e8 100644
--- a/ethosu/vela/tensor.py
+++ b/ethosu/vela/tensor.py
@@ -484,6 +484,17 @@
         res.src_tensor = self
         return res
 
+    def as_1D(self):
+        self.shape = [np.prod(self.shape)]
+        if self.values is not None:
+            self.values = self.values.reshape(self.shape)
+
+    def transpose(self, reorder):
+        self.shape = [self.shape[idx] for idx in reorder]
+        self._original_shape = [self._original_shape[idx] for idx in reorder]
+        if self.values is not None:
+            self.values = self.values.transpose(reorder)
+
     def copy_compressed_weight_info(self, src_tens: "Tensor"):
         # Copies compressed values + all related weight compression info from the given tensor
         self.equivalence_id = src_tens.equivalence_id
