aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/nn/rewrite/library/fc_sparsity24_layer.py
diff options
context:
space:
mode:
authorMadeleine Dunn <madeleine.dunn@arm.com>2023-11-13 15:40:21 +0000
committerMadeleine Dunn <madeleine.dunn@arm.com>2024-04-03 16:33:39 +0100
commit17813ba5be09f0e11fc0748afa4ccf2da02881b6 (patch)
tree8ec5f3ce3501b86e9398cf5af6f7bd9876685512 /src/mlia/nn/rewrite/library/fc_sparsity24_layer.py
parent2a2a910d6d7cc3e7555b0a3c1ba458a4065c41ae (diff)
downloadmlia-17813ba5be09f0e11fc0748afa4ccf2da02881b6.tar.gz
feat: Implement fp32 sparsity 2:4 rewrite
- Update the existing placeholder with code to prune the given model Resolves: MLIA-1002 Signed-off-by: Madeleine Dunn <madeleine.dunn@arm.com> Change-Id: I76b0e0bfe81be5e57d518cd7bb588eef76a11641
Diffstat (limited to 'src/mlia/nn/rewrite/library/fc_sparsity24_layer.py')
-rw-r--r--src/mlia/nn/rewrite/library/fc_sparsity24_layer.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/mlia/nn/rewrite/library/fc_sparsity24_layer.py b/src/mlia/nn/rewrite/library/fc_sparsity24_layer.py
index 1b17522..531b34a 100644
--- a/src/mlia/nn/rewrite/library/fc_sparsity24_layer.py
+++ b/src/mlia/nn/rewrite/library/fc_sparsity24_layer.py
@@ -1,14 +1,23 @@
-# SPDX-FileCopyrightText: Copyright 2023, Arm Limited and/or its affiliates.
+# SPDX-FileCopyrightText: Copyright 2024, Arm Limited and/or its affiliates.
# SPDX-License-Identifier: Apache-2.0
-"""PLACEHOLDER for example rewrite with one fully connected 2:4 sparsity layer."""
+"""Example rewrite with one fully connected 2:4 sparsity layer."""
from typing import Any
+import tensorflow_model_optimization as tfmot
from keras.api._v2 import keras # Temporary workaround for now: MLIA-1107
-from .fc_layer import get_keras_model
-
-def get_keras_model24(input_shape: Any, output_shape: Any) -> keras.Model:
+def get_keras_model(input_shape: Any, output_shape: Any) -> keras.Model:
"""Generate TensorFlow Lite model for rewrite."""
- model = get_keras_model(input_shape, output_shape)
+ model = tfmot.sparsity.keras.prune_low_magnitude(
+ to_prune=keras.Sequential(
+ [
+ keras.layers.InputLayer(input_shape=input_shape),
+ keras.layers.Reshape([-1]),
+ keras.layers.Dense(output_shape),
+ ]
+ ),
+ sparsity_m_by_n=(2, 4),
+ )
+
return model