aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/nn/rewrite/library/sparsity.py
diff options
context:
space:
mode:
authorNathan Bailey <nathan.bailey@arm.com>2024-03-07 14:27:54 +0000
committerNathan Bailey <nathan.bailey@arm.com>2024-05-28 11:23:24 +0100
commitb90fd38588cfd7fc0b94786fde196ad5a27965d3 (patch)
tree6f7c87d58cc525f9a8cd3ad3753ae36d4b9b06e7 /src/mlia/nn/rewrite/library/sparsity.py
parent3002baa6b1fd226d38bcfabfe3dc15556833be6a (diff)
downloadmlia-b90fd38588cfd7fc0b94786fde196ad5a27965d3.tar.gz
feat: Enable rewrite parameterisation for specific rewrites
Adds support for rewrite-specific parameters Resolves: MLIA-1114 Signed-off-by: Nathan Bailey <nathan.bailey@arm.com> Change-Id: I290c326af3356033a916a43b28027819c876c3dd
Diffstat (limited to 'src/mlia/nn/rewrite/library/sparsity.py')
-rw-r--r--src/mlia/nn/rewrite/library/sparsity.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/mlia/nn/rewrite/library/sparsity.py b/src/mlia/nn/rewrite/library/sparsity.py
index 745fa8b..2342e3d 100644
--- a/src/mlia/nn/rewrite/library/sparsity.py
+++ b/src/mlia/nn/rewrite/library/sparsity.py
@@ -9,7 +9,9 @@ from keras.api._v2 import keras # Temporary workaround for now: MLIA-1107
from mlia.nn.rewrite.library.helper_functions import compute_conv2d_parameters
-def fc_sparsity_rewrite(input_shape: Any, output_shape: Any) -> keras.Model:
+def fc_sparsity_rewrite(
+ input_shape: Any, output_shape: Any, sparsity_m: int = 2, sparsity_n: int = 4
+) -> keras.Model:
"""Fully connected TensorFlow Lite model ready for sparse pruning."""
model = tfmot.sparsity.keras.prune_low_magnitude(
to_prune=keras.Sequential(
@@ -19,13 +21,18 @@ def fc_sparsity_rewrite(input_shape: Any, output_shape: Any) -> keras.Model:
keras.layers.Dense(output_shape),
]
),
- sparsity_m_by_n=(2, 4),
+ sparsity_m_by_n=(
+ sparsity_m,
+ sparsity_n,
+ ),
)
return model
-def conv2d_sparsity_rewrite(input_shape: Any, output_shape: Any) -> keras.Model:
+def conv2d_sparsity_rewrite(
+ input_shape: Any, output_shape: Any, sparsity_m: int = 2, sparsity_n: int = 4
+) -> keras.Model:
"""Conv2d TensorFlow Lite model ready for sparse pruning."""
conv2d_parameters = compute_conv2d_parameters(
input_shape=input_shape, output_shape=output_shape
@@ -39,7 +46,10 @@ def conv2d_sparsity_rewrite(input_shape: Any, output_shape: Any) -> keras.Model:
keras.layers.ReLU(),
]
),
- sparsity_m_by_n=(2, 4),
+ sparsity_m_by_n=(
+ sparsity_m,
+ sparsity_n,
+ ),
)
return model