diff options
author | Madeleine Dunn <madeleine.dunn@arm.com> | 2023-11-13 15:40:21 +0000 |
---|---|---|
committer | Madeleine Dunn <madeleine.dunn@arm.com> | 2024-04-03 16:33:39 +0100 |
commit | 17813ba5be09f0e11fc0748afa4ccf2da02881b6 (patch) | |
tree | 8ec5f3ce3501b86e9398cf5af6f7bd9876685512 /src/mlia/nn/rewrite/library/fc_sparsity24_layer.py | |
parent | 2a2a910d6d7cc3e7555b0a3c1ba458a4065c41ae (diff) | |
download | mlia-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.py | 21 |
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 |