diff options
author | Nathan Bailey <nathan.bailey@arm.com> | 2024-03-07 14:27:54 +0000 |
---|---|---|
committer | Nathan Bailey <nathan.bailey@arm.com> | 2024-05-28 11:23:24 +0100 |
commit | b90fd38588cfd7fc0b94786fde196ad5a27965d3 (patch) | |
tree | 6f7c87d58cc525f9a8cd3ad3753ae36d4b9b06e7 /src/mlia/nn/rewrite/library/sparsity.py | |
parent | 3002baa6b1fd226d38bcfabfe3dc15556833be6a (diff) | |
download | mlia-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.py | 18 |
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 |