aboutsummaryrefslogtreecommitdiff
path: root/tests
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 /tests
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 'tests')
-rw-r--r--tests/test_nn_rewrite_core_rewrite.py16
-rw-r--r--tests/test_nn_rewrite_core_train.py9
2 files changed, 23 insertions, 2 deletions
diff --git a/tests/test_nn_rewrite_core_rewrite.py b/tests/test_nn_rewrite_core_rewrite.py
index 1d0100a..e614cad 100644
--- a/tests/test_nn_rewrite_core_rewrite.py
+++ b/tests/test_nn_rewrite_core_rewrite.py
@@ -39,6 +39,20 @@ def test_rewrite() -> None:
@pytest.mark.parametrize(
+ "rewrite_name, callbacks_length",
+ [
+ ("fully-connected", 0),
+ ("fully-connected-sparsity24", 1),
+ ],
+)
+def test_rewrite_selection(rewrite_name: str, callbacks_length: int) -> None:
+ """Test that the correct rewrite class is instantiated."""
+ rewrite = RewritingOptimizer.registry.items[rewrite_name]
+ assert rewrite.name == rewrite_name
+ assert len(rewrite.training_callbacks()) == callbacks_length
+
+
+@pytest.mark.parametrize(
"rewrite_name, expected_error",
[
("fully-connected", does_not_raise()),
@@ -89,7 +103,7 @@ def test_rewriting_optimizer(
def test_register_rewrite_function() -> None:
- """Test adding rewrite functions and verify the are reported via the registry."""
+ """Test adding rewrite functions and verify they are reported via the registry."""
registry = RewriteRegistry()
rewrite1 = Rewrite("r1", cast(RewriteCallable, lambda: 1))
diff --git a/tests/test_nn_rewrite_core_train.py b/tests/test_nn_rewrite_core_train.py
index 624c5ed..34b9543 100644
--- a/tests/test_nn_rewrite_core_train.py
+++ b/tests/test_nn_rewrite_core_train.py
@@ -14,6 +14,7 @@ import pytest
import tensorflow as tf
from keras.api._v2 import keras # Temporary workaround for now: MLIA-1107
+from mlia.nn.rewrite.core.rewrite import DynamicallyLoadedRewrite
from mlia.nn.rewrite.core.train import augment_fn_twins
from mlia.nn.rewrite.core.train import AUGMENTATION_PRESETS
from mlia.nn.rewrite.core.train import LearningRateSchedule
@@ -53,12 +54,18 @@ def check_train(
"""Test the train() function."""
with TemporaryDirectory() as tmp_dir:
output_file = Path(tmp_dir, "out.tflite")
+ mock_rewrite = DynamicallyLoadedRewrite(
+ name="replace",
+ function_name=(
+ "tests.test_nn_rewrite_core_train.replace_fully_connected_with_conv"
+ ),
+ )
result = train(
source_model=str(tflite_model),
unmodified_model=str(tflite_model) if use_unmodified_model else None,
output_model=str(output_file),
input_tfrec=str(tfrecord),
- replace_fn=replace_fully_connected_with_conv,
+ rewrite=mock_rewrite,
input_tensors=["sequential/flatten/Reshape"],
output_tensors=["StatefulPartitionedCall:0"],
train_params=train_params,